Я не думаю, что вы можете изменить привязку динамически (по крайней мере, в XAML).Однако вы можете сделать следующее:
<StackPanel>
<ComboBox SelectedIndex="{Binding SelectedIndex}" Margin="2" Width="100">
<ComboBoxItem Tag="X">X</ComboBoxItem>
<ComboBoxItem Tag="Y">Y</ComboBoxItem>
</ComboBox>
<Slider Value="{Binding SliderValue}"></Slider>
</StackPanel>
Slider
теперь привязано к другому свойству (SliderValue
).Вот дополнительные свойства в вашей модели представления:
private int _selectedIndex;
public int SelectedIndex
{
get { return _selectedIndex; }
set
{
_selectedIndex = value;
NotifyPropertyChanged();
if (SelectedIndex == 0)
SliderValue = XValue;
else if (SelectedIndex == 1)
SliderValue = YValue;
}
}
private int _sliderValue;
public int SliderValue
{
get { return _sliderValue; }
set
{
_sliderValue = value;
NotifyPropertyChanged();
if (SelectedIndex == 0)
XValue = SliderValue;
else if (SelectedIndex == 1)
YValue = SliderValue;
}
}
Идея состоит в том, что когда SelectedItem
изменяется с помощью ComboBox
, Slider
обновляется либо XValue
, либо * 1013.*.Когда значение Slider
изменяется, XValue
или YValue
обновляется в зависимости от выбора ComboBox
.