我有一个表(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");
}
}