C# 基于文本框和复选框MVVM筛选WPF数据网格
我本来希望自己能让它工作的,但看起来我还是错过了一些东西。我有4个文本框用于过滤WPF数据网格。除此之外,我还有两个复选框 目前我没有收到任何错误,但是C# 基于文本框和复选框MVVM筛选WPF数据网格,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,我本来希望自己能让它工作的,但看起来我还是错过了一些东西。我有4个文本框用于过滤WPF数据网格。除此之外,我还有两个复选框 目前我没有收到任何错误,但是 我只能选中复选框,不能取消选中 如果选中这两个复选框=“应用的过滤器”并将值输入到YRNRO“应用更多过滤器”=“输入值”到其他文本框,则不会产生任何效果。过滤器是否因此而变得混乱 string ACTIVEBoolquery = ACTIVEBool ? "AND YRNRO Like '6%' OR YRNRO Lik
string ACTIVEBoolquery = ACTIVEBool ? "AND YRNRO Like '6%' OR YRNRO Like '7%'" : "";
this.MainDataTable.DefaultView.RowFilter =
$"YRNRO LIKE '{this.YRNROSearchKey}*'" +
ACTIVEBoolquery;
中设置复选框过滤器,启用rowFiltering
以覆盖在加载数据之前选中复选框的情况。因此,我可以选中复选框,然后在加载数据后通过调用EnableRowFiltering
将数据加载到DataGrid
MainWindow.xaml:
<!--CHECKBOXES-->
<CheckBox Style="{StaticResource MyCheckBox}" IsChecked="{Binding ACTIVEBool}" x:Name="ActiveCustomer" Content="" HorizontalAlignment="Left" Margin="128,55,0,0" VerticalAlignment="Top"/>
<CheckBox Style="{StaticResource MyCheckBox}" IsChecked="{Binding FIANDSEBool}" x:Name="OnlyFIandSE" Content="" HorizontalAlignment="Left" Margin="24,54,0,0" VerticalAlignment="Top"/>
作业
this._FIANDSEBool = true;
及
在属性设置中,设置者显然是错误的
他们应该使用值
关键字:
public bool FIANDSEBool
{
get => _FIANDSEBool;
set
{
_FIANDSEBool = value; // here
OnPropertyChanged();
EnableRowFiltering();
}
}
您应该使用equals(double
==
)运算符来比较值:\u fian和sebool==true
。它是如何崩溃的?异常消息说什么?FIANDSEBool==true
是一个冗余的比较。只需编写FIANDSEBool?“”:…
。我认为WPF中的复选框可以为空(选中、未选中和未定义),因此您可能需要将它们绑定到bool?而不是布尔。当你勾选/取消勾选该复选框时,你的财产是否被击中?在其中放置断点以确保绑定正常工作。文本框可以工作吗?只有复选框不起作用吗?在和之前添加一些空格,比如“和kaytosa”
。@hatman:“不能取消选中”是什么意思?
this._ACTIVEBool = true;
public bool FIANDSEBool
{
get => _FIANDSEBool;
set
{
_FIANDSEBool = value; // here
OnPropertyChanged();
EnableRowFiltering();
}
}