我需要在silverlight页面上动态生成一些组合框。Silverlight XAML namespace scoping
如果我有下面的XAML代码:
<ComboBox Name="Combo1">
<ComboBox.Items>
<ComboBoxItem Name="Option1" Content="Option 1" />
<ComboBoxItem Name="Option2" Content="Option 2" />
</ComboBox.Items>
</ComboBox>
<ComboBox Name="Combo2">
<ComboBox.Items>
<ComboBoxItem Name="Option1" Content="Option 1" />
<ComboBoxItem Name="Option2" Content="Option 2" />
</ComboBox.Items>
</ComboBox>
我得到的错误说,第二个选项1名(Combo2下)已经存在的命名空间。
我读过here这是silverlight中的一个bug,但我不太明白如何解决它。我需要能够从选定的ComboBox项目中检索字符串Option1。
任何想法?
编辑:我有一个自定义控件,生成一些组合框。一些示例XAML代码是这样的:
<ComboBox Name="Combo1">
<ComboBox.Items>
<ComboBoxItem Name="True" Content="Yes" />
<ComboBoxItem Name="False" Content="No" />
</ComboBox.Items>
</ComboBox>
<ComboBox Name="Combo2">
<ComboBox.Items>
<ComboBoxItem Name="True" Content="Okay" />
<ComboBoxItem Name="False" Content="Not Okay" />
</ComboBox.Items>
</ComboBox>
我希望能够获取选中ComboBoxItem“名称”,而不是“内容”不过,做这样的,我会碰上如果错误任何comboboxitem“名称”都不是唯一的(在此控件中)。
谢谢。我只是认为会被封装在 元素中,并且不会有命名空间问题。 –
krebstar
2012-02-10 08:38:58
我想,我想说的是,我试图做一个自定义控件,生成自己的组合框。每个组合框的组合框元素可以命名为任何东西,因此这些组合框元素可以在不同的组合框中具有相同的名称。我仍然需要能够引用选定的组合框名并获取它们的名称。 – krebstar 2012-02-10 08:41:29
hmm。你可以做的是在自定义控件的后台代码中动态生成组合框,并将其添加到一个堆栈面板的子项中,例如,在您的自定义控件中。对于您创建并添加到堆栈面板的每个组合框控件,可以将事件处理程序绑定到其“SelectChanged”事件,以便每当您的组合框选定值发生更改时,它都会调用一个事件处理程序方法来传递回参数告诉你事情像哪个组合框调用事件和新的选定值等 – 2012-02-10 08:51:52