绑定控制可见性切换按钮缺血性质

时间:2013-10-12 10:29:26

标签: c# wpf xaml visual-studio-2012 .net-4.5

编辑:看来这只是VisualStudio以某种方式混淆了。它在重新启动后接受它就好了。我没有办法解决这个问题。

我有一个带有两个控件的窗口:一个togglebutton和一个文本框。我希望togglebutton控制文本框的可见性,即,当togglebutton的ischecked属性为true时显示文本框,并在文本框为false时崩溃(初始缺失状态为false)。

根据我能够找到的信息,似乎以下简单的XAML应该有效:

<Window
  x:Class="WpfApplication1.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Window.Resources>
    <BooleanToVisibilityConverter x:Key="IsCheckedVisibilityConverter"/>
  </Window.Resources>
  <StackPanel>
    <ToggleButton x:Name="ShowTextBox" Content="Show the TextBox" IsChecked="False"/>
    <TextBox Visibility="{Binding IsChecked, ElementName=ShowTextBox, Converter={StaticResource IsCheckedVisibilityConverter}}"/>
  </StackPanel>
</Window>

但是,当我收到错误时,我无法编译并运行它:

The TypeConverter for "IValueConverter" does not support converting from a string.

在部分[Visibility =“{Binding]下面有一个蓝色方格下划线。

我确信我一定做错了什么,但我花了几个小时试图找到有关它为什么不起作用的信息,我所能找到的只是示例表明这或多或少是正确的这样做的方式。谁能指出我做错了什么?

我对C#/ WPF / XAML比较陌生,所以我在玩弄东西以便更好地感受它。如果有一个控件更适合这个任务,我很想知道它,但我更感兴趣的是如何使这个工作,所以我可以更好地了解正在发生的事情(或者更确切地说,为什么它不起作用)。 / p>

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以分享您的价值转换代码吗?

完全希望它与此类似

class IsCheckedVisibilityConverter:IValueConverter
{

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return Visibility.Visible;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return null;
    }
}

构建它。检查一次。