【发布时间】:2015-04-06 21:55:03
【问题描述】:
我想知道在调用 propertychanged 时是否可以更新另一个 UI 元素。
这是一个例子:
public string TestString
{
get { return testString; }
set
{
testString = value;
OnPropertyChanged("TestString");
}
}
public TestClass TestClassInstance { get; set; }
假设我的测试类有一个名为 Update 的方法。如何设置它以便在 Xaml 中的 TestString 属性发生更改时调用 Update?我知道我总是可以将方法附加到事件处理程序,但我想知道我是否可以在 Xaml 中做到这一点。也许使用行为或类似的东西。 你能告诉我这是否可能吗?如果可以,你能帮助我朝着正确的方向前进吗?
【问题讨论】:
-
您可以使用元素绑定。请参阅文本框的示例文本块。
-
@Ganesh 是的,我知道您可以将另一个 UI 元素的元素链接到另一个元素。我的意思是当 TextBox 已更改时,我想在 TestClassInstance 中调用更新方法。我该怎么做?
-
只需在代码中更新即可。这不是魔术,xaml 中的任何内容都不应该“知道”您的 TestClassInstance 应该在 TestString 更改时调用其 Update 方法。
-
@Will 是的,我知道这不是魔法。我想知道是否可以通过附加行为来做类似的事情。我对 WPF 有点生疏,想知道是否必须在模型/视图模型中执行此操作,或者是否可以通过行为来执行此操作并通过 xaml 进行设置。
-
可能。但是你必须写它。当属性 Z 更新时,在属性 Y 中运行方法 X 的框架中不存在任何内容:/
标签: wpf mvvm viewmodel attachedbehaviors