我需要在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