在不同的窗口C#WPF上筛选配置



我有一个程序,可以根据一些过滤器(股票数量、名称包含X、价格等)从数据库中获取一些产品来设置过滤器。我打开一个包含所有参数的新窗口,当他们单击保存时,它会创建一个文件,主窗口会打开该文件来读取过滤器。有更有效的方法吗?谢谢

是的,我相信有一种更有效的方法可以实现你想要做的事情。你可以创建一个窗口,在关闭它之后,它会返回一些价值。(像OpenFileDialog)

首先,如果您还没有,请创建一个类来描述一组过滤器。

class FilterSet
{
public string NameSubString { get; set; }
public int MinStock { get; set; }
public double MinPrice { get; set; }
public double MaxPrice { get; set; }
...
}

之后,将这个FilterSet类作为公共(私有集)属性添加到用于输入过滤器的窗口中。

public partial class SearchFiltersWindow : Window
{
public FilterSet Filters { get; private set; }
...
}

使用此选项可以设置窗口中的所有输入参数。

现在,请确保您在该窗口上有一个确定取消按钮。这将用于指示用户是否成功输入。在两个按钮上分别将IsDefault和IsCancel设置为true,并将其设置为关闭窗口。此外,请确保在按下"确定"按钮时将DialogResult属性设置为true

private void OkButton_Click(object sender, RoutedEventArgs e)       
{
this.DialogResult = true;
}

现在剩下的唯一一件事就是在窗口关闭后从窗口中获取FilterSet。以下是您可以在MainWindow中使用的代码,用于打开过滤器窗口,并在关闭时从中获取输入的参数。

SearchFiltersWindow window = new SearchFiltersWindow();
if (window.ShowDialog() == true) // ShowDialog() will return the subwindow's DialogResult when it's closed
DoStuffWith(window.Filters);

相关内容

  • 没有找到相关文章

最新更新