比方說,我有一個包含屬性的枚舉:WPF C# - 綁定枚舉到組合框,但不使用所有枚舉值
public enum MyEnum
{
Yes,
No,
None
}
我可以很容易地將這些值綁定到一個組合框。但是,假設我想省略「無」的值 - 那麼最好的方法是什麼?
比方說,我有一個包含屬性的枚舉:WPF C# - 綁定枚舉到組合框,但不使用所有枚舉值
public enum MyEnum
{
Yes,
No,
None
}
我可以很容易地將這些值綁定到一個組合框。但是,假設我想省略「無」的值 - 那麼最好的方法是什麼?
您可以使用Enum.GetValues()然後Cast
得到一個IEnumerable
,然後過濾根據要忽略的那些結果,e.g:
var items = Enum.GetValues(typeof(MyEnum)).Cast<MyEnum>()
.Where(e => e != MyEnum.None);
爲什麼'ToString()'而不只是'e => e!= MyEnum.None'?這裏並不是一個真正的問題,但將ToList()或ToArray()附加到任何用作項目源的查詢也是一種很好的做法,否則可能會重新評估它。 – 2014-10-28 12:52:47
沒有特別的原因,我在沒有調試器的情況下寫得非常快,但這也應該起作用,這個概念仍然存在,並且很容易理解。謝謝你的提示。 – DGibbs 2014-10-28 14:11:16
你如何填充'ItemSource'?通過某種轉換器?如果是,那麼改變它以省略'None' – dkozl 2014-10-28 12:22:21
你肯定必須用***代碼隱藏***填充項目(使用反射),所以過濾掉某些值只是一件小事。 – 2014-10-28 12:24:33
全部添加,然後刪除選定的? – 2014-10-28 12:24:40