2011-01-09 15 views
0

(請注意 - 我是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被發現,會出現兩個問題:

  1. 沒有選項在組合框(其空白)選擇

  2. 組合框結合似乎從這時開始打破 - 任何產品我隨後編輯(包含非空類別ID)在ComboBox中沒有任何選擇(它仍然填充了所有類別 - 只是沒有選定的項目)。

我見過的問題#2(herehere)的報告,但我的印象是,#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> 

回答