c# - 是否可以将 WPF 数据网格上的用户输入数据存储到字符串 var 中?
问题描述
我在 WPF 中有一个由类填充的数据研究。我在每一行都有一个按钮。我正在尝试这样做,以便在编辑后单击按钮时,该行中的框会将那里的内容转换为字符串 var。var 将用于将更改的信息传递给函数。
.xaml
<DataGrid x:Name = "NAME" ItemsSource = "{Binding}" AlternatingRowBackground="DarkGray" AlternationCount="2" HorizontalAlignment = "Stretch" VerticalAlignment = "Top" AutoGenerateColumns = "False" >
<DataGrid.Columns>
<DataGridTextColumn Binding = "{Binding PreferenceExtCode}" Header = "Name" />
<DataGridTextColumn Binding = "{Binding CustPrefValue}" Header = "Value" />
<DataGridTemplateColumn Header="View">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Name="BtnSave" Content="SAVE" Click="BtnSave_Click" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
。CS
private void BtnSave_Click(object sender, RoutedEventArgs e)
{
UpdatePref gridRow = (UpdatePreference)((Button)e.OriginalSource).DataContext;
UpdatePref updatePref = (UpdatePref )((Button)e.Source).DataContext;
string Name = updatePref.PreferenceExtCode;
string Value = updatePref.CustPrefValue;
// ...
}
我希望单击按钮以保存编辑的值而不是原始值。
解决方案
您可以将UpdateSourceTrigger
绑定设置为PropertyChanged
:
<DataGridTextColumn Binding="{Binding PreferenceExtCode, UpdateSourceTrigger=PropertyChanged}" Header="Name" />
<DataGridTextColumn Binding="{Binding CustPrefValue, UpdateSourceTrigger=PropertyChanged}" Header="Value" />
推荐阅读
- python - Scrapy Crawl 电子商务网站
- python - Python JSON转储格式转义引号
- google-sheets - 从其他工作表中提取复杂数据
- c# - 在 OData 中匹配大小写属性时出现 AmbiguousMatchException
- css - 有没有办法使用 CSS 使字体真棒图标看起来更薄/更苗条?
- android - 迁移到 androidX 后,OkHttp 帖子内容在发布版本中为空
- spring-boot - Spring-Boot 1.5.10.release 与 apache-kafka-2.3.0 客户端的兼容性
- android - 使用特定的物理相机 ID 而非逻辑相机 ID 拍摄照片
- php - 带狮身人面像的智能过滤器
- javascript - 将保留按钮添加到表格的第 4 列。链接到灯箱/弹出窗口