我想让两个值相互依赖,例如:
first_value = 0.6f then second_value = 0.4f [range: 0.0f to 1.0f],
so first_value = 1.0f - second_value and second_value = 1.0f - first_value
如何在WPF中执行此操作?以及如何在实时'
中更新它答案 0 :(得分:0)
选项1 如果您使用的是MVVM设计模式,那么您可以在ViewModel中使用类似的内容:
public float FirstValue {
get { return _firstValue; }
set {
_firstValue = value;
_secondValue = 1 - value;
OnPropertyChanged("FirstValue");
OnPropertyChanged("SecondValue");
}
}
public float SecondValue {
get { return _secondValue; }
set {
_secondValue = value;
_firstValue = 1 - value;
OnPropertyChanged("FirstValue");
OnPropertyChanged("SecondValue");
}
}
或者,
选项2 如果要直接在XAML(UI)中实现此目的 - 您可以添加双向绑定和转换器(IValueConverter)。
例如保持2个滑块实时同步:
<Slider Name="slider1" Value="{Binding ElementName=slider2, Path=Value, Mode=TwoWay, Converter={ StaticResource converter}}" />
<Slider Name="slider2" />
并按照以下方式实施您的转换器:
public class FirstToSecondConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
// Do the conversion here from first to second value
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
// Do the conversion from second to first value
}
}