我有一个有趣的场景 - 我有一个滑块,需要在更改值时立即更新控件。一切都很好,很容易。
但我还是喜欢做一些额外的工作,但只是在延迟之后。绑定上的.NET 4.5延迟属性是完美的,但现在滑块值需要有两个绑定...一个有延迟,一个没有。
类似于以下内容:
<Slider value={Binding Path=Property1, Delay=500; Binding Path=Property2} />
我知道这不存在,但它会很高兴。但有没有办法使用4.5的新延迟道具?
答案 0 :(得分:1)
不确定这是否有效,但您可以使用虚拟转换器使用MultiBinding
作弊。
类似的东西:
XAML:
<Window.Resources>
<local:DummyConverter x:Key="Dummyconverter" />
</Window.Resources>
<Grid>
<Slider >
<Slider.Value>
<MultiBinding Converter="{StaticResource Dummyconverter}" >
<Binding Path="Value1" />
<Binding Path="Value2" Delay="500" />
</MultiBinding>
</Slider.Value>
</Slider>
</Grid>
虚拟转换器
public class DummyConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return values == null ? null : values[0];
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
return new object[] { value, value };
}
}