(請注意 - 我是Silverlight初學者,正在尋找最簡單的解決方案,例如,不涉及編寫/安裝替代品組合框控件!)Silverlight 4 ComboBox - 綁定到Nullable數據(嘗試TargetNullValue但未按預期工作)
這是使用View Model(MVVM)方法的Silverlight 4應用程序的問題。我有一個簡單的窗體來編輯「產品」對象。產品具有可爲空的類別標識屬性(int?)。一個ComboBox用於查看和設置CategoryID - 它綁定到一個ObservableCollection類別。產品還具有綁定到TextBoxes的非空值屬性的數量。
我希望用戶在ComboBox中看到沒有類別的產品的「N/A」,並且使用這個「N/A」選項將CategoryID設置爲空。因此,我手動添加了CategoryID = 0和CategoryName =「N/A」的Category對象到集合中;然後在ComboBox的SelectedValue Binding中設置TargetNullValue = 0。我的想法是 - 當ComboBox SelectedValue被綁定到一個空的CategoryID時,它會替換爲零,因此選擇「N/A」選項。
使用非空的CategoryID編輯產品時,一切正常。然而,當空類別ID被發現,會出現兩個問題:
沒有選項在組合框(其空白)選擇
組合框結合似乎從這時開始打破 - 任何產品我隨後編輯(包含非空類別ID)在ComboBox中沒有任何選擇(它仍然填充了所有類別 - 只是沒有選定的項目)。
我見過的問題#2(here,here)的報告,但我的印象是,#1應該有工作下。
我錯過了什麼來選擇「不適用」選項?
的XAML組合框:
<ComboBox x:Name="cboCategory" ItemsSource="{Binding colCategories, Mode=OneWay}" SelectedValuePath="CategoryID" DisplayMemberPath="CategoryName" SelectedValue="{Binding CurrentProduct.CategoryID, Mode=TwoWay, TargetNullValue=0}" Height="24" Width="344"></ComboBox>