0
私はユーザー入力のためのデータグリッドを持っており、各セルはデータ選択用のコンボボックスです。選択した値は、後でデータをデータベースに保存するために、データグリッドのitemsourceにバインドされます。コンボボックスの値は、異なるitemsourceから来るものとします。MVVM Databinding DatagridとCombobox/itemsource
UI:
<DataGrid ItemsSource="{Binding Users}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Firstname">
<DataGridTemplateColumn.CellTemplate>
<HierarchicalDataTemplate>
<ComboBox ItemsSource="{Binding Firstnames}" DisplayMemberPath="Name"/>
</HierarchicalDataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<ComboBox ItemsSource="{Binding Firstnames}" DisplayMemberPath="Name">
</ComboBox>
</StackPanel>
モデルとのViewModel:
// Models
public class User
{
public string Firstname { get; set; }
public string Lastname {get; set; }
}
public class Firstname
{
public string Name { get; set; }
}
public class Lastname
{
public string Name { get; set; }
}
//ViewModel
public class GenerateViewModel : NotifyUIBase
{
#region properties
public ObservableCollection<User> Users { get; set; }
public ObservableCollection<Firstname> Firstnames { get; set; }
public ObservableCollection<Lastname> Lastnames { get; set; }
#endregion
#region Constructor
public GenerateViewModel()
{
Firstnames = new ObservableCollection<Firstname>()
{
new Firstname() {Name="Firstname1"},
new Firstname() {Name= "Firstname2"}
};
Lastnames = new ObservableCollection<Lastname>()
{
new Lastname() {Name="Lastname1"},
new Lastname() {Name= "Lastname2"}
};
Users = new ObservableCollection<User> {new User()};
}
#endregion
#region Methods
#endregion
}
データグリッドの内部コンボボックスが空に保ち、私のデータグリッドの追加のコンボボックスの外部との結合がうまく動作します。 DataContextが認識されない
感謝した作品ですが、私の解決策のための私の考えが間違っているようです。私はこれを確認するための新しい投稿を作成する必要があります私は正しい方法です。 – Shazter
おそらく、この質問をする正しい場所です。選択した値をコレクションusers.Firstnameにバインドする方法は?選択した値を格納するために2番目のコレクションを作成する必要がありますか? – Shazter