为什么我不能得到任何燃烧的转换器?

问题描述:

我有单选按钮,我想定义的单选按钮器isChecked状态和一些StackPanel的,所以我写了这个转换方法的可见性之间的绑定:为什么我不能得到任何燃烧的转换器?

public class RadioBtnState2Visible : IValueConverter 
{ 
    // RadioBtn start => Visible/Hide 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     if(value == null) 
      return Visibility.Collapsed; 

     bool visibility = false; 
     bool.TryParse(value.ToString(), out visibility); 

     return visibility ? Visibility.Visible : Visibility.Collapsed; 

    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
     //return ((Visibility)value) == Visibility.Visible ? true : false; 
    } 
} 

的XAML是

<local:PageEx.Resources> 
    <local:RadioBtnState2Visible x:Key="Convert" /> 
</local:PageEx.Resources> 

<RadioButton x:Name="MyRadioBtn1" GroupName="group1" /> 
<RadioButton x:Name="MyRadioBtn2" GroupName="group1" /> 

<StackPanel Visibility="{Binding ElementName=MyRadioBtn1, Path=IsChecked, Converter={StaticResource Convert}}" /> 

现在,我没有看到任何转换火 - 我没有看到应用程序停止在转换方法的第一行上设置的断点。

+0

你看到在输出窗口任何约束力的错误,当你在调试运行呢? – 2011-06-16 07:30:35

+0

不,没有绑定错误。 – Yanshof 2011-06-16 07:31:44

+0

对不起,-1。这是一个诚实的错误 – Yanshof 2011-06-16 08:13:22

这是上一个问题的复本,已经回答了。这里是答案:

我得到了你的代码在一个测试项目中的工作与一个小的变化。我做了转换器的语法如下页面资源:

<UserControl.Resources> 
    <local:RadioBtnState2Visible x:Key="Convert" /> 
</UserControl.Resources> 

我还要提到的是,我不得不居然把东西在StackPanel中也看到了变化默认情况下它缩短到什么:)我承担你真的在你的真正的堆栈面板上有内容。


只是为了解释这里发生了什么。通过将“local:”添加到资源声明中,您实际上将一个资源的实例包含在内,而不会更改当前资源。通过“转换”引用它不起作用,因为它无法找到它希望找到它的资源。

+0

请阅读代码。资源是正确的。我使用'转换' – Yanshof 2011-06-16 07:38:46

+0

@Yanshof:我没有说参考名称是错的。我说资源的声明是错误的。以我们的“本地:”部分。当我遇到实际构建和修复实际测试项目的麻烦时,感谢您的否定。尝试再次阅读我的答案。 – 2011-06-16 07:48:32

+0

我的stackpanel充满了控制 - 我只是复制到这里的stackpanel标题。 – Yanshof 2011-06-16 07:49:34

FYI有BooleanToVisibilityConverter转换器已经提供:

<Window.Resources> 
    <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter1" /> 
</Window.Resources> 
+1

不是在Silverlight中不存在 – AnthonyWJones 2011-06-16 07:50:52

+0

Ha我看到了,感谢提醒。 – 2011-06-16 08:10:05