私は WPF と .NET に少し慣れていないので、これは簡単な作業かもしれません
。データグリッドの選択された項目から値を取得するテキストブロックがあります。ユーザーがそのデータグリッド列のすべての値を表示できるように、コンボボックスをそのデータグリッドの 1 つの列にバインドしようとしています。コンボボックスでアイテムを選択すると、その行もデータグリッドで選択されたアイテムになるはずです。
ここに私のDataGridがあります:
<sdk:DataGrid AutoGenerateColumns="True" Name="l1dGrid" IsReadOnly="True" ItemsSource="{Binding}" DataContext="{Binding Path=DataContext}" />
Datagrid がデータをロードする場所は次のとおりです。
_PCContext.Load(_PCContext.GetLine1_DownstairsQuery());
l1dGrid.ItemsSource = _PCContext.Line1_Downstairs;
ここで、DataGrid で選択した項目を変更できるコンボボックスが必要です。
よろしくお願いします。
[編集 - 解決済み]
わかりましたので、コンボボックスの選択されたアイテムに基づいてデータグリッドをクエリし、データグリッドの選択されたアイテムをそのクエリに一致するアイテムに設定するだけになりました。
これを行うために使用したコードは次のとおりです。
private void stockPick_comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string selection = stockPick_comboBox.SelectedValue.ToString().Replace("Line1_Downstairs : ", "");
selectGridItem(selection);
}
private void selectGridItem(string selection)
{
var stock = (from i in _PCContext.Line1_Downstairs
where i.Stock == selection
select i).FirstOrDefault();
l1dGrid.SelectedItem = stock;
}