gpt4 book ai didi

c# - 编辑 DataGridTextColumn 时在当前行上执行方法

转载 作者:行者123 更新时间:2023-12-03 10:26:26 24 4
gpt4 key购买 nike

我目前有一个绑定(bind)到 Person 对象的 DataGrid:

<DataGrid ItemsSource="{Binding Person}" Width="1700" Height="840" AutoGenerateColumns="False" CanUserAddRows="true" ...>
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Select" Binding="{Binding IsChecked}"/>
<DataGridTextColumn Header="Gender" Binding="{Binding Gender}" IsReadOnly="True"/>
<DataGridTextColumn Header="Username" Binding="{Binding Username}" />
...
</DataGrid.Columns>
</DataGrid>

当用户编辑网格并添加新用户名时,我需要触发一个方法,该方法会进入数据库并根据新用户名填充其他信息(性别等)。

目前,用户输入用户名,选中与该行关联的复选框,然后单击按钮以填充其余数据。我试图摆脱这些额外的两个步骤,因为这应该会自动发生。

我为此使用了 MVVM 模式。

感谢您的任何帮助。

最佳答案

当您使用 MVVM 模式时,我假设“Person”类将具有“用户名”的属性。实现 INotifyPropertyChanged 接口(interface)并将属性更改为普通属性(如果它是自动属性),并在通过您需要的任何检查通知属性后调用数据库更新。像这样的东西:

    private string username;
public string Username
{
get
{
return username;
}
set
{
username= value;
NotifyPropertyChanged("Username");
if (<condition>)
PopulateData();
}
}

在 xaml 中进行以下更改:
<DataGridTextColumn Header="Username" Binding="{Binding Username, Mode=TwoWay, UpdateSourceTrigger=LostFocus}" />

一旦单元格失去焦点并且数据将被填充,这将调用 Username 属性的 setter 。

关于c# - 编辑 DataGridTextColumn 时在当前行上执行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43234459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com