これは私が取り組んでいるユーザーコントロールです。最初のcomboBoxの項目は、dataGridColumn GroupIDで同じになるでしょう。DataGridの内部のコンボボックスにデータをバインドするにはどうすればよいですか?
最初のコンボボックスに表示するコードは
<ComboBox ItemsSource="{Binding}" Name="GroupComboBox" SelectedValuePath="GroupID" DisplayMemberPath="GroupName" Grid.Column="1" Margin="5" />
private void LoadGroups()
{
NorthwindDataContext dc = new NorthwindDataContext();
var groups = (from p in dc.Group
select p);
this.DataContext = groups;
}
private void LoadStudents()
{
NorthwindDataContext dc = new NorthwindDataContext();
var students = (from p in dc.Student
select p);
dataGrid1.ItemsSource = students;
}
である。しかし、別のコンボボックスで、それに任意の項目を表示されません。
<DataGridTemplateColumn Header="GroupID">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding}" SelectedValuePath="GroupID" DisplayMemberPath="GroupName" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
どのようにバインドできますか?
私はすべてのグループをリストに入れることを考えていましたが、リスト内でクエリを変換する必要があるため、それは良い方法になるとは思えません。
UPDATE 1:
私は、この行削除する必要がありました:グループクラスを作成します
<DataGridTemplateColumn Header="GroupID">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding DataContext, RelativeSource={RelativeSource AncestorType=UserControl}}" SelectedValuePath="GroupID" DisplayMemberPath="GroupName" SelectedValue="{Binding GroupID}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
それが結合することになると異なるのUIは非常に異なっているように私は、WPFで再タグ付けを示唆しています。ありがとう。 – Jay
この投稿のタグを編集してWPFを追加すると、データベースおよび/またはlinqを削除することもできます。あなたの質問に適切なタグを付けることは、あなたの投稿に適切な専門家を引き付けるために非常に重要です。 – Jay
ああそうです、最も重要なタグを忘れました –