我希望(在C#中)使用枚举的允许值System.IO.Ports.Parity
填充组合框的允许值列表。为此我创建了一个集合:在WPF中枚举System.IO.Ports.Parity的组合框
public class theParitySource : ObservableCollection<Parity>
{
public theParitySource()
{
Array parities = System.Enum.GetValues(typeof(Parity));
foreach (Parity p in parities) this.Add(p);
}
}
(顺便说一句:有没有oneliner这个初始化)和本作的组合框的DataContext的:
...
xmlns:local="clr-namespace:myNamespace"
...
<ComboBox ...>
<ComboBox.DataContext>
<local:theParitySource />
</ComboBox.DataContext>
</ComboBox>
组合框,但是,仍然为空(它显示为空,但似乎具有正确的长度),尽管我可以在调试器中看到如何填充。这种方法在另一个组合框(即使在同一个班级)中工作,我在这里为波特率做了这个。我用整数值进行初始化,所以我想这与我在这里使用枚举的事实有关,但我猜测可能是什么原因。任何指针?我需要写一个转换器吗?
(当然我可以解决此通过创建从枚举的字符串列表,但这将是一种不愉快的...)
编辑:其实我更愿意做这一切在XAML。有没有简单的方法来做到这一点?
非常感谢,这看起来完全一样,我想它:-) – Thomas 2013-02-20 20:43:41