[英]how to databind textbox inside WPF datagrid to a property in viewmodel?
How to bind textbox inside WPF Data grid to a property in view model? 如何将WPF数据网格内的文本框绑定到视图模型中的属性? I am using MVVM pattern.
我正在使用MVVM模式。
<DataGrid ItemsSource="{Binding Channels}" AutoGenerateColumns="False" ColumnWidth="*" CanUserAddRows="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Display Name">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding DisplayName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="200"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
DisplayName is a property as defined below: DisplayName是如下定义的属性:
private string displayName;
public string DisplayName
{
get { return displayName; }
set
{
if (displayName != value)
{ displayName = value;
RaisePropertyChanged(() => DisplayName);
}
}
}
In case you simply want to bind text, i would suggest to use DataGridTextColumn
instead of DataGridTemplateColumn
. 如果您只是想绑定文本,我建议您使用
DataGridTextColumn
而不是DataGridTemplateColumn
。 No need to recreate column which already exists. 无需重新创建已经存在的列。
<DataGrid ItemsSource="{Binding Channels}" AutoGenerateColumns="False"
ColumnWidth="*" CanUserAddRows="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Display Name"
Width="200"
Binding="{Binding DisplayName}"/>
</DataGrid.Columns>
</DataGrid>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.