2012-01-12 59 views
1

我有一个大约20个项目的组合框。我想关联每个ComboBoxItem的5个属性,例如颜色,价格,运输重量等。如何在xaml文件中存储和检索ComboBoxItem的属性?

我想将所有这些属性存储在xaml文件中,并在C#代码中选择项目时检索它们。

我最好如何做到这一点?将所有内容都存储在Tag中并解析Tag字符串是最好的方法?谢谢。

<ComboBoxItem Content="Shirt" Tag="Red;14;2"></ComboBoxItem> 

回答

1

可以任何存储在标签,如果你想要更多类型safetry创建一个对象:

<ComboBoxItem> 
    <ComboBoxItem.Tag> 
     <local:Attributes Color="Red" Min="2" Max="14"/> 
    <ComboBoxItem.Tag> 
<ComboBoxItem> 

但即使是更好,但你不应该在自己创建的项目,但只是有一个物品收集和bind/data template它使用ComboBox.ItemsSourceItemTemplate,那么你可以存储该项目。

ComboBox.SelectedItem将直接成为您需要的所有属性的项目。

+0

你能告诉我如何使用你的例子检索Color属性吗?现在我正在使用...(comboBox1.SelectedItem).Tag.ToString()来检索标签的值。谢谢。 – user763554 2012-01-12 00:29:57

+0

@ user763554:如果标签是如上所示的这样一个对象,那么您只需要对其进行投射。 var atts =((Attributes)((ComboBoxItem)comboBox1.SelectedItem).Tag;'然后你可以用'atts.Color'做一些事情(如果你是XAML的新手,你可能会对[那个概述]感兴趣http://msdn.microsoft.com/en-us/library/ms752059.aspx) – 2012-01-12 00:40:26

+0

绝对完美!谢谢。 – user763554 2012-01-12 00:50:08

相关问题