テーブル (SQL Server の WareTable) があります。
フォームで datagridview(=dgv) を使用する必要があります。
私の dgv では、最初の列は ComboBox (WareName) です。
ComboBox で値を選択すると、次の列 (sellPrice) が自動的に入力されます。
どうすればできますか?
テーブル (SQL Server の WareTable) があります。
フォームで datagridview(=dgv) を使用する必要があります。
私の dgv では、最初の列は ComboBox (WareName) です。
ComboBox で値を選択すると、次の列 (sellPrice) が自動的に入力されます。
どうすればできますか?
マルチバインディングは役に立ちますか? データ グリッド ビューの各行にビューモデルがある場合、列 1 の値を選択すると、ビューモデルにプロパティが設定されます。列 1 からプロパティにバインドし、必要なその他のデータをバインドし、列 2 に正しい値を表示するマルチバインディングと値コンバーターをセットアップできます。
<DataGridTextColumn
Header="Ticket Qty"
Width="Auto"
IsReadOnly="True" >
<DataGridTextColumn.Binding>
<MultiBinding Converter="{StaticResource unitConverter}">
<Binding Path="Column1ViewModelProperty"/>
<Binding Path="Column2ViewModelProperty" />
<Binding Path="AdditionalViewModelProperty"/>
</MultiBinding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
http://msdn.microsoft.com/en-us/library/system.windows.data.multibinding.converter.aspx
または、Column1ViewModelProperty に変更を加えて、実際のビュー モデル クラスで Column2ViewModelProperty を更新することもできます (Column1ViewModelProperty のセッターでイベントを発生させるか、Column2ViewModelProperty を更新するメソッドを呼び出します)。
<DataGridTextColumn Binding="{Binding Column1ViewModelProperty }"/>
//Code behind
public string Column1ViewModelProperty {
get{
return _column1ViewModelProperty;
}
set{
_column1ViewModelProperty = value;
Column2ViewMOdelProperty = calculatedValue;
OnPropertyChanged("Column1ViewModelProperty");
}
}
public string Column2ViewModelProperty {
get{
return _column2ViewModelProperty;
}
set{
_column2ViewModelProperty = value;
OnPropertyChanged("Column2ViewModelProperty");
}
}