Условные текстовые поля с привязкой к слайдеру - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть три текстовых поля и один ползунок, который меняет их свойства текста.Что мне нужно сделать, так это связать свойство value слайдера со свойством Text textbox, но определенным образом.Когда одно из текстовых полей активировано (получено), мне нужен ползунок, чтобы изменить его свойство Text.И только этот.Я связал его до сих пор, но когда я перемещаю ползунок, все текстовые поля обновляются.

Есть идеи?Я читал о конвертерах, но я не вижу, как реализовать это в моей программе.

http://forums.create.msdn.com/forums/t/95548.aspx здесь у вас есть код моего ползунка и текстового блока.

1 Ответ

0 голосов
/ 21 ноября 2011

Как насчет простого изменения активной привязки, когда текстовое поле получает фокус:

Код сзади:

    private Binding _activeBinding;
    private TextBox _activeTextbox;
    private TextBox ActiveTextBox
    {
        get { return _activeTextbox; }
        set
        {
            // Check if a binding exists, initialize if one does not
            if (_activeBinding == null)
            {
                _activeBinding = new Binding("Value");
                _activeBinding.Source = this.sld;
            }

            if (_activeTextbox != null)
            {
                // Clear the binding
                _activeTextbox.ClearValue(TextBox.TextProperty);
            }

            _activeTextbox = value;

            if (_activeTextbox != null)
            {
                // Set the new binding
                _activeTextbox.SetBinding(TextBox.TextProperty, _activeBinding);
            }
        }
    }

    private void TextBox_GotFocus(object sender, RoutedEventArgs e)
    {
        this.ActiveTextBox = sender as TextBox;
    }

XAML:

 <Grid>
    <StackPanel>
        <TextBox GotFocus="TextBox_GotFocus">1</TextBox>
        <TextBox GotFocus="TextBox_GotFocus">2</TextBox>
        <TextBox GotFocus="TextBox_GotFocus">3</TextBox>
        <Slider x:Name="sld"></Slider>
    </StackPanel>
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...