更改另一个控件的值时如何执行Converter?

时间:2018-08-21 22:29:17

标签: c# xaml uwp

我有两个ComboBox ComboBox1和ComboBox2,我想在ComboBox1 SelectedItem更改时执行ComboBox2转换器,如何在XAML中完成。

到目前为止,我对于ComboBox2具有此XAML:

ItemsSource="{Binding MyItems, Converter={StaticResource MYConverter}, ConverterParameter= {Binding ElementName=comboBox1, Path=SelectedItem,Mode=TwoWay}}" 

2 个答案:

答案 0 :(得分:2)

仅当更改绑定值时才重新评估绑定,而不更改转换器参数,因此,请假设:

    ViewModel的
  1. SelectedItem1属性绑定到ComboBox1 s SelectedItem属性。

  2. ViewModel的
  3. SelectedItem2属性绑定到ComboBox2的{​​{1}}属性。

  4. View模型的
  5. SelectedItem的{​​{1}}属性绑定到ViewModel上的名为ComboBox2的属性:

只要更改ItemSource,就应该为MyItems引发SelectedItem1事件。这样,重新评估绑定并执行转换器。

P.S:请在以后提供有关您的问题的更多背景信息,例如您的ViewModel是什么样的。

答案 1 :(得分:0)

在后面的代码中,您可以创建如下代码:

comboBox1.SelectionChanged += new SelectionChangedEventHandler(comboBox1SelectionChanged);

它将生成一个事件处理程序,该事件处理程序将由委托调用,该处理程序应如下所示:

void comboBox1SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        //Your logic here
    }

别忘了:

u

sing System.Windows;
using System.Windows.Controls;