0

C#

 MainDataContext db = new MainDataContext();
var cat = from p in db.Categories
                      select p;
categoriesComboBox.ItemsSource = cat;
            categoriesComboBox.SelectedValuePath = "ID";
            categoriesComboBox.DisplayMemberPath = "CatName";

XAML

<Custom:DataGridComboBoxColumn                                    
Width="1*"                                  x:Name="categoriesComboBox" 
Header="Category"
ItemsSource="{Binding}"
SelectedValueBinding="{Binding Path=Category}"
SelectedValuePath="ID"
DisplayMemberPath="CatName"
/>

これで、読み込み時にコモボックスに名前が表示されます...コンボボックスをクリックすると、ドロップダウンにすべてのアイテムのMainDataContext.Categoryが表示されます...

ドロップダウン項目のいずれかをクリックすると、正しい値が選択され、コンボボックスに表示されます...

グリッドが読み込まれると... その列をダブルクリックした後..

4

1 に答える 1

0

自分で設定するべきではありません。categoriesComboBox.ItemsSource = cat;データ コンテキストで設定してみてください: categoriesComboBox.DataContext = cat. とにかく、必要なバインドが XAML に含まれています。

これがあなたの実際の問題であることを願っています(あなたの質問から問題が何であるかを理解できなかったため)。


DataTemplate編集: 画像から、 type にa を指定する必要がありますMainContext.Category。それがない場合、文字列表現を出力するだけのデフォルト テンプレートが使用されます。

于 2011-10-11T18:10:29.157 に答える