【发布时间】:2018-10-11 21:07:56
【问题描述】:
我正在尝试使用复选框过滤器过滤 ListView,并将这些过滤器应用于枚举。它适用于一个过滤器,但不适用于组合。
枚举具有所有值的 2 次幂和 [Flags] 属性。
这是我的代码:
int statuses = 0;
if ((bool)Filter1CB.IsChecked)
{
statuses++;
}
if ((bool)Filter2CB.IsChecked)
{
statuses += 2;
}
if ((bool)Filter3CB.IsChecked)
{
statuses += 4;
}
if ((bool)Filter4CB.IsChecked)
{
statuses += 8;
}
Sp.Filter = item =>
{
return item is Sp sp && sp.CurrentStatus == (SpStatus)statuses;
};
我检查了,检查过滤器 1 和 2 时 statuses 的值为 3,依此类推。但它没有应用任何过滤器...
这是我的枚举:
[Flags]
public enum SpStatus
{
Filter1 = 1 << 0,
Filter2 = 1 << 1,
Filter3 = 1 << 2,
Filter4 = 1 << 3,
}
【问题讨论】: