これは私を夢中にさせています。ユーザーが選択できるようにしたい DataGridComboBoxColumn を持つ DataGrid があります。これが私のグリッドの基本的な概要です。
<DataGrid ItemsSource="{Binding GoalList}" DockPanel.Dock="Bottom" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridComboBoxColumn ItemsSource="{Binding LifeAreaList}" Header="Life Area"/>
<DataGrid.Columns>
</DataGrid>
DataGrid は、Goal 型のオブジェクトのコレクションにバインドされています。各目標には、タイプ LifeArea のプロパティがあります。各 LifeArea には、プロパティ LifeAreaId と Name があります。
データ コンテキストには、監視可能な目標のコレクション: GoalList と生活領域のリスト: LifeAreaList が含まれます。ユーザーが目標のために別の生活領域を選択できるようにしたい. また、ライフエリアの名前が表示される値である必要があります。
編集
解決策は、DataGridComboBoxColumn の ItemsSource を静的リソースとして設定する必要があることです。もう 1 つのオプションは、コードを使用して ItemsSource を設定することです。
最後に私は持っています:
<DataGridComboBoxColumn x:Name="_lifeAreaComboBoxColumn" SelectedItemBinding="{Binding LifeArea}" DisplayMemberPath="Name" Header="Life Area">
コード ビハインドでは、ItemsSource を設定します。
_lifeAreaComboBoxColumn.ItemsSource = LifeAreaDAL.GetLifeAreas();
機会があれば、これを StaticResource に変換します。