【发布时间】:2019-07-16 21:01:02
【问题描述】:
在 MVVM 模式中,我将 16 个不同的字符串绑定到 16 个用于过滤列的文本框,每个文本框都在创建时分配了 propertychanged。由于其余字段在运行时仍为默认值,因此逻辑失败。我想忽略空字段。如果我填写列表中的每个字段,那么它会按预期工作。
我想要的:如果用户随机选择框1、5和15填充文本,那么它应该只过滤那些,而忽略剩余的空的。如果用户没有填写任何内容,那么它应该继续显示整个表格。
我尝试过的:我尝试在添加到列表之前获取所有字段并设置 != "" 和 != null ,然后将列表类型作为字符串返回过滤。制作 foreach 也无济于事。请看下面的例子:
public List<String> FilterList()
{
List<String> filters = new List<string>();
if (!Filterbox1.Equals("") && !Filterbox1.Equals(null))
{
filters.Add(Filterbox1);
}
if (!Filterbox2.Equals("") && !Filterbox2.Equals(null))
{
filters.Add(Filterbox2);
}
return filters;
}
我尝试使用的原始代码:
string[] ColumnFilter = new[] { Filterbox1, Filterbox2, Filterbox3, Filterbox4, Filterbox5, Filterbox6, Filterbox7, Filterbox8, Filterbox9, Filterbox10, Filterbox11, Filterbox12, Filterbox13, Filterbox14, Filterbox15, Filterbox16 };
_dataGridModel.DataTableMergeren = new DataView(MainTable).ToTable(false, ColumnFilter);
【问题讨论】:
标签: c# wpf validation mvvm datatable