Wpf DataTrigger setter只调用一次
我有以下的款式。我的问题是,即使多重绑定总是正确的,我也只在加载窗口时观察setter一次。每当我更改窗口高度时,调用此MyMultiValueConverter时,我可以在日志中看到它,但不能在“”中看到它 MySeperatorHeightConverter是Wpf DataTrigger setter只调用一次,wpf,binding,setter,datatrigger,Wpf,Binding,Setter,Datatrigger,我有以下的款式。我的问题是,即使多重绑定总是正确的,我也只在加载窗口时观察setter一次。每当我更改窗口高度时,调用此MyMultiValueConverter时,我可以在日志中看到它,但不能在“”中看到它 MySeperatorHeightConverter是 class SeperatorHeightConverter : IValueConverter { public object Convert(object value, Type t
class SeperatorHeightConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Console.WriteLine("!-!- SeperatorHeightConverter: " + parameter);
return 100;
}
}
代码中的问题是,将某个对象绑定到不变的高度。这就是为什么第二个转换器不会被触发 请参阅此代码:
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}}, Path=ActualHeight, Converter={StaticResource mySeperatorHeightConverter}, ConverterParameter=DataTrigger}"/>
这一小改动使得
单独或高度转换器
在每次车窗高度变化时都会触发。非常感谢。我真的没有意识到我实际上并没有将动态的东西绑定到高度。
class SeperatorHeightConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Console.WriteLine("!-!- SeperatorHeightConverter: " + parameter);
return 100;
}
}
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}}, Path=ActualHeight, Converter={StaticResource mySeperatorHeightConverter}, ConverterParameter=DataTrigger}"/>