我需要让几个项目的选择,从这个预设列表:如何将数据绑定到集合中的组合对象的属性?
public enum QuarkType{
Up,
Down,
[Description("Magical Being")] Charm,
[Description("Quite Odd")] Strange,
Top,
Bottom
}
于是我就用CheckComboBox,并使用DescriptionAttribute
,我需要使用自定义的描述。我喂CheckComboBox
使用MarkupExtension
返回给定enum
为IEnumerable<EnumDescriptionPair>
,其中EnumDescriptionPair
是所有值的列表:
public class EnumDescriptionPair{
public object Value { get; set; }
public string Description { get; set; }
}
现在的问题是如何将Value
s此列表的传递给后台代码清单:
public ObservableCollection<QuarkType> SelectedQuarksList { get; set; }
我的意思是,如何把刚Value
出EnumDescriptionPair
的选定列表中的每个项目?
这是我到目前为止。这显然是行不通的(这意味着它显示了CheckComboBox
正确的字符串,并允许选择几个项目,但没有反映在上面提到的SelectedQuarksList
):
<Window x:Class="MyEditor.MainWindow"
xmlns:loc="clr-namespace:MyEditor"
xmlns:toolKit="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<StackPanel>
<toolKit:CheckComboBox x:Name="Ccb" Delimiter=","
ItemsSource="{loc:EnumItemsValueConverter {x:Type loc:QuarkType}}"
DisplayMemberPath="Description"
SelectedItemsOverride="{Binding SelectedQuarksList}" />
<ListBox ItemsSource="{Binding SelectedQuarksList}" />
</StackPanel>
</Window>
由于列表是预定义的,复选框列表是否需要绑定?我之前已经完成了所有在XAML中声明的选项,并绑定到一个Enum,但不是你描述的方式。 +1是一个很好的问题。 – BradleyDotNET
@LordTakkera - 我不确定我是否理解你的建议,但我愿意提供建议 – Tar
我在解答我的建议的尝试在我的答案中,希望它们对你有用。 – BradleyDotNET