C# 带滑块绑定的条件文本框

C# 带滑块绑定的条件文本框,c#,windows-phone-7,binding,silverlight-4.0,C#,Windows Phone 7,Binding,Silverlight 4.0,我有三个文本框和一个滑块,可以更改它们的文本属性。我要做的是将slider的value属性与Text textbox属性绑定,但要以特定的方式绑定。当其中一个文本框被激活时,我需要滑块来更改其文本属性。只有那个。到目前为止,我已经绑定了它,但当我移动滑块时,所有文本框都会更新 有什么想法吗? 我读过关于转换器的书,但我不知道如何在我的程序中实现它 这里有我的滑块和文本块的代码 当文本框接收焦点时,简单地更改活动绑定如何: 代码隐藏: private Binding _activeBind

我有三个文本框和一个滑块,可以更改它们的文本属性。我要做的是将slider的value属性与Text textbox属性绑定,但要以特定的方式绑定。当其中一个文本框被激活时,我需要滑块来更改其文本属性。只有那个。到目前为止,我已经绑定了它,但当我移动滑块时,所有文本框都会更新

有什么想法吗? 我读过关于转换器的书,但我不知道如何在我的程序中实现它


这里有我的滑块和文本块的代码

当文本框接收焦点时,简单地更改活动绑定如何:

代码隐藏:

    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:


嗯,你能帮我把这个加入我的程序吗?我应该将这4个项目添加到堆栈面板,然后将该metods添加到mainpage.xaml.cs?您不需要将这些项目添加到堆栈面板,这只是我的示例代码。1将ActiveTextbox属性添加到代码隐藏中,就像在我的示例中一样,这将处理绑定更改。2删除文本={绑定…来自文本框的XAML声明。3更改每个文本框的XAML声明中的_GotFocus事件处理程序,以指向我在示例中创建的新方法TextBox_GotFocus方法。在本例中,我的TextBox1、2和3是现有文本框的替代项。找不到类型或命名空间名称绑定。I da删除{Binding…如你所说。还有什么要做的吗?尝试使用System.Windows.Data;添加到mainwindow.xaml.csprivate Binding的顶部_activeBinding;请不要将代码作为外部链接发布。这会使代码无法检索,也意味着要尝试帮助用户离开此网站或打开一个新的浏览器窗口。这是lso意味着如果外部站点由于某种原因关闭,您的问题将变得毫无意义。谢谢:
 <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>