两个控件之间的DataBind

时间:2011-12-05 20:14:31

标签: c# wpf xaml data-binding

我想在xaml中的那两个控件之间使用DataBind我是怎么做到的?

 <MenuItem Header="_Log" IsCheckable="True"/>

 <TextBox Name="_commandsRichTextBox" ,Visibility="Collapsed"/>

我写了一个转换器:

class BoolToVisibilityConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (targetType != typeof(Visibility))
                throw new InvalidOperationException("The target must be a Visibility");

            return (bool)value ? Visibility.Visible : Visibility.Collapsed;    

        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

我现在遇到连接所有问题的问题。

感谢帮助。

1 个答案:

答案 0 :(得分:2)

已有一个转换器:BooleanToVisibilityConverter

<Window.Resources>
    <BooleanToVisibilityConverter x:Key="converter"/>
</Window.Resources>
<!-- ... -->
<MenuItem Name="mi" Header="_Log" IsCheckable="True"/>
<TextBox Name="_commandsRichTextBox" Visibility="{Binding IsChecked, ElementName=mi, Converter={StaticResource converter}}"/>

我只建议从控件到控件的绑定,如果你可以确定数据保留在视图中,否则创建一个可绑定属性并将两个控件绑定到它,MenuItem将更改值,TextBox将作出反应。