让我解释一下这个问题。
我有一个可观察的 FilterTags 类型的集合(其中 FilteredTags 是一个类,有一个名为“isChecked”的属性)。现在我的复选框与这个可观察的集合绑定了。这是一种双向绑定,所以当我选中一个复选框时,更改会反映在集合中。该复选框还有一个检查更改事件。问题是在集合中的更改更新之前调用的 checkchanged 事件。
我希望首先更新集合,以便我可以在 checkboxchanged 函数中使用它。有什么办法可以做到吗???
让我解释一下这个问题。
我有一个可观察的 FilterTags 类型的集合(其中 FilteredTags 是一个类,有一个名为“isChecked”的属性)。现在我的复选框与这个可观察的集合绑定了。这是一种双向绑定,所以当我选中一个复选框时,更改会反映在集合中。该复选框还有一个检查更改事件。问题是在集合中的更改更新之前调用的 checkchanged 事件。
我希望首先更新集合,以便我可以在 checkboxchanged 函数中使用它。有什么办法可以做到吗???
我为文本框执行此操作,以在文本更改时强制更新模型的值,也许它可以帮助您(尝试在事件处理程序的顶部运行它):
var expression = this.GetBindingExpression(TextBox.TextProperty);
if (expression != null)
expression.UpdateSource();
尽量不要在用户控制下的代码中使用订阅事件。尝试根据 MVVM 模式设计项目。你可以在那里找到一些信息。
试试这样。在更新准备就绪时触发一个事件。
public event EventHandler SaveCompleted;
...
_ctx.SubmitChanges((so) => {
if (SaveCompleted != null) SaveCompleted(this, new EventArgs());
InvalidateCommands();
}, null);