gpt4 book ai didi

wpf - 如何编辑 ViewModel 对象的属性,但仅在单击 View 中的按钮时应用更改

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

我的屏幕上有一个 Person 类型的对象列表,以及通过数据绑定(bind)显示人员属性(姓名、地址、体重等)的表单。

我希望能够:

  • 单击“编辑属性”按钮,然后开始修改人员的属性(我已经可以在 ViewModel 中使用 Command s);
  • 如果我点击“取消”,编辑后的信息“回滚”到那个人的原始未修改值;
  • 如果我单击“保存更改”,则此人的姓名会在人员列表中更改。

  • 我现在的问题是,当我编辑表单时,原始属性会实时更新,也就是说,如果我决定取消,我没有原始值可以“返回”。

    我考虑到 Clone被选中的人,但这似乎很奇怪。我认为更好的方法是仅更改字段的文本属性,并仅在单击提交更改时更新回来,但我不知道该怎么做,特别是如何保持数据绑定(bind)的一致性。

    最佳答案

    绑定(bind)时,使用 UpdateSourceTrigger = Explicit .这将告诉 XAML 在您告诉它之前不要更新源绑定(bind)。然后,当您点击保存按钮时,您可以调用 UpdateSource 在绑定(bind)上将控件的内容推回 Person对象,例如:

    var nameBinding = nameTextBox.GetBindingExpression( TextBox.TextProperty );
    nameBinding.UpdateSource();

    要取消,请使用 UpdateTarget 相反,这会将数据推送到 Person对象回到你的控制。

    关于wpf - 如何编辑 ViewModel 对象的属性,但仅在单击 View 中的按钮时应用更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19527398/

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