如何将WPF数据网格中的文本框绑定到视图模型中的属性?我正在使用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是一个定义如下的属性:
private string displayName;
public string DisplayName
{
get { return displayName; }
set
{
if (displayName != value)
{ displayName = value;
RaisePropertyChanged(() => DisplayName);
}
}
}
答案 0 :(得分:3)
如果您只想绑定文字,我建议您使用DataGridTextColumn
代替DataGridTemplateColumn
。无需重新创建已存在的列。
<DataGrid ItemsSource="{Binding Channels}" AutoGenerateColumns="False"
ColumnWidth="*" CanUserAddRows="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Display Name"
Width="200"
Binding="{Binding DisplayName}"/>
</DataGrid.Columns>
</DataGrid>