私はviewModelのコレクションを表示するために使用する次のItemsControlを持っています。Display Items単一のDataGrid行としてのコントロール
<Border>
<ItemsControl ItemsSource="{Binding MyViewModel.MyCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="20"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentControl Content="{Binding}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Border>
そして、背後にあるコードは次のとおりです。
MyCollection = new ObservableCollection<ViewModel>();
foreach(var model in MyModelList)
{
var myViewModel = new ViewModel(model);
MyCollection.Add(myViewModel);
}
は今、これは正常に動作します。ただし、ItemsControlを持たない場合は、MyCollection ObservableCollectionに追加する項目が2つしかないためです。
グリッド列を別々に表示するには、1つの行のデータグリッド内の2つのviewModelをそれぞれ独自の列に追加します。 (たとえば、ユーザーが1つのviewModelをクリックしたときに、その列のデータギャルドの背景を変更したい場合)
これを行うにはどうすればよいですか?
は、あなたのデータグリッドでのコード例を提案してくださいことはできますか? ItemsControlコードがこの場合に役立つかどうかわかりません。 –
いいえいいえ、ItemsControlを削除します。私は1つのViewモデルをDataGridの行= 0の列= 0に配置し、もう1つのViewModelをDataGridの行= 0の列= 1に配置します。 –