以下の XAML を定義しました。バインディングによって DataGridComboBoxColumn が設定されました。コンボ ボックスで PartNumber を選択した場合、別のプロパティ (PartName) の値を DataGridTextColumn でバインドする必要があります。DataGridTextColumn でそのバインディングを行うにはどうすればよいですか?
<Window.Resources>
<ObjectDataProvider x:Key="RecordValues"
ObjectType="{x:Type local:RecordTemp}"
MethodName="GetPersonList">
</ObjectDataProvider>
</Window.Resources>
<Grid>
<Grid>
<DataGrid AutoGenerateColumns="False"
ItemsSource="{Binding}"
Margin="10"
Name="dataGrid1">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Combo"
Width="300"
SelectedItemBinding="{Binding Values}"
DisplayMemberPath="PartNumber"
ItemsSource="{Binding Source={StaticResource RecordValues}}" />
<DataGridTextColumn Header="Order Name"
Binding="" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Grid>
以下のコードで定義されている C# では、
ObservableCollection<RecordTemp> RecordsTemp = new ObservableCollection<RecordTemp>();
RecordsTemp.Add(new RecordTemp());
RecordsTemp.Add(new RecordTemp());
dataGrid1.DataContext = RecordsTemp;
public class RecordTemp
{
List<PartsList> _value = new List<PartsList>();
public RecordTemp()
{
_value.Add(new PartsList() { PartName = "One", PartNumber = "1", PartQuantity = 20 });
_value.Add(new PartsList() { PartName = "Two", PartNumber = "2", PartQuantity = 10 });
}
public List<PartsList> value
{
get { return _value; }
set { _value = value; }
}
public List<PartsList> GetPersonList()
{
return _value;
}
}
public class PartsList
{
public string PartName { get; set; }
public double PartQuantity { get; set; }
public string PartNumber { get; set; }
}