1

興味深いシナリオがあります。値が変更されるとすぐにコントロールを更新する必要があるスライダーがあります。すべてがうまくいき、簡単です。

しかし、私はそれがいくつかの追加作業を行うことも望んでいますが、それは遅れた後でのみです. バインディングの .NET 4.5 遅延プロパティは完璧ですが、スライダーの値には 2 つのバインディングが必要です。1 つは遅延あり、もう 1 つは遅延なしです。

これに相当するもの:

<Slider value={Binding Path=Property1, Delay=500; Binding Path=Property2} />

私はこれが存在しないことを知っていますが、あるといいでしょう。しかし、4.5 の新しい Delay プロップを使用してこれを行う方法はありますか?

4

1 に答える 1

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 };
    }
}
于 2013-02-22T02:58:29.143 に答える