0

我想知道在调用 propertychanged 时是否可以更新另一个 UI 元素。

这是一个例子:

public string TestString 
{
    get { return testString; }
    set
    {
        testString = value; 
        OnPropertyChanged("TestString");
    }
}

public TestClass TestClassInstance { get; set; }

假设我的测试类有一个名为 Update 的方法。如何设置它以便在 Xaml 中的 TestString 属性发生更改时调用 Update?我知道我总是可以将方法附加到事件处理程序,但我想知道我是否可以在 Xaml 中做到这一点。也许使用行为或类似的东西。你能告诉我这是否可能吗?如果可以,你能帮助我朝着正确的方向前进吗?

4

1 回答 1

0

听起来您正在寻找行为

<!-- This collection element might exist if you have already added other behaviors. -->
<i:Interaction.Triggers>
    <i:EventTrigger SourceName="textBox" EventName="TextChanged">
        <ic:CallMethodAction MethodName="Update" TargetObject="{Binding TestClassInstance}">
        </ic:CallMethodAction>
    </i:EventTrigger>
</i:Interaction.Triggers>

<Textbox x:Name="textBox" Content="{Binding TestString, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

但我不确定您是否可以通过此方法从代码中获取更改。如果你的更新方法是一个命令,你应该使用它InvokeActionCommand

<cmd:InvokeCommandAction Command="{Binding TestClassInstance.Update}"/>

但是为什么要将它放入 XAML 中呢?它是特定于特定视图或应用程序类型的行为吗?

于 2015-02-07T11:20:26.807 回答