2011-01-09 6 views
0

(私はSilverlightの初心者であり、ここでは最も単純な解決策を探しています。 ComboBoxコントロール!)Silverlight 4 ComboBox - Nullableデータにバインドする(TargetNullValueを試しても期待通りに機能しない)

これは、ビューモデル(MVVM)アプローチを使用するSilverlight 4アプリケーションの問題です。私は "製品"オブジェクトを編集するための簡単なフォームを持っています。 Productには、nullable(int?)のCategoryIDプロパティがあります。 ComboBoxを使用してCategoryIDを表示および設定します。これはObservableCollectionのカテゴリにバインドされています。製品には、TextBoxにバインドされたnull不可能なプロパティもいくつかあります。

カテゴリのない製品のComboBoxで「N/A」と表示し、この「N/A」オプションを使用してCategoryIDをnullに設定する必要があります。だから、私は手動でコレクションにCategoryID = 0とCategoryName = "N/A"のCategoryオブジェクトを追加しました。 ComboBoxのSelectedValue BindingにTargetNullValue = 0を設定します。私の考えは、ComboBox SelectedValueがnull CategoryIDにバインドされたときにゼロを代用するため、「N/A」オプションを選択することでした。

null以外のCategoryIDで製品を編集すると、すべて正常に動作します。しかしヌル区分が発見された場合、二つの問題が発生します。

  1. ませオプションがコンボボックス(その空白)で選択されていないこれ以降から壊れ

  2. 結合コンボボックスのようだ - 私はその後、編集いずれかの製品(非nullのCategoryIDを持つものを含む)はコンボボックスで何も選択されていません(選択されていないアイテムのみ)。

私は問題#2(herehere)の報告書を見てきましたが、私は#1が働いているはずという印象の下にありました。

"N/A"オプションを選択するには、何が欠けていますか? ComboBoxのため

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> 

答えて

関連する問題