2011-06-16 27 views
0

我有單選按鈕,我想定義的單選按鈕器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

回答

2

這是上一個問題的複本,已經回答了。這裏是答案:

我得到了你的代碼在一個測試項目中的工作與一個小的變化。我做了轉換器的語法如下頁面資源:

<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

0

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

相關問題