gpt4 book ai didi

mvvm - 使用 Caliburn Micro 在项目更改时更新 DataGrid

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

我有一个数据网格,它使用 Caliburn Micro 绑定(bind)到一组项目。我希望一旦用户对每一行进行编辑,网格就会更新。我认为这很简单(就像 ASP.NET 一样简单),但我还没有找到任何似乎可行的方法。

这是我的 View 模型

public class JournalViewModel :    Caliburn.PresentationFramework.PropertyChangedBase
{
private CrystalRptDataEntities ctx = new CrystalRptDataEntities();
private BindableCollection<EmployeeInfo> employees;

public JournalViewModel()
{
Load();

}

public void Load()
{
employees = new BindableCollection<EmployeeInfo>(ctx.EmployeeInfoes);
AllEmployees = employees;
}

public BindableCollection<EmployeeInfo> AllEmployees
{
get { return employees; }
set
{
employees = value;
NotifyOfPropertyChange(() => AllEmployees);
}
}

//....
}

这是我的看法
<DataGrid x:Name="AllEmployees"  AutoGenerateColumns="True" />

最佳答案

我找到了解决我自己问题的方法——花了 3 件事。

1)我必须将此方法添加到我的 JournalViewModel 类

public void SaveChanges()
{
ctx.SaveChanges();
}

2)然后我必须将这两个引用添加到我的 xaml 文件中
xmlns:i="clr-namespace:System.Windows.Interactivity;
assembly=System.Windows.Interactivity"
xmlns:cal="http://www.caliburnproject.org"

3)然后我必须像这样将一个事件附加到我的数据网格:
<DataGrid x:Name="AllEmployees"  
AutoGenerateColumns="True"
cal:Message.Attach="[Event CellEditEnding]=[Action SaveChanges()]">

这样,每次我完成编辑单元格时,都会保存 ctx。

关于mvvm - 使用 Caliburn Micro 在项目更改时更新 DataGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711536/

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