2013-11-28 73 views
1

我想要一個特定的參數值,複選框被檢查與否。 我的代碼:創建轉換器複選框列

public class CheckConverter : IValueConverter 
{ 

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     string passedvalue = value.ToString(); 
     string parametervalue = parameter.ToString(); 
     if (passedvalue == parametervalue) 
      return 1; 
     else 
      return 0; 

    } 

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

} 

和我如何設置:

checkcolumn.Binding = new Binding() { Converter = new CheckConverter() , ConverterParameter="aaa" }; 

不幸的是,在我的轉換器類,if語句始終爲false。我不明白爲什麼。如果我有if(1 == 1),那麼一切都很完美。我只是想將單元格中的值與我給出的參數值進行比較。

+2

你有沒有在'Convert'方法中設置一個斷點來看看發生了什麼?什麼是兩個輸入值? – Sheridan

+2

您應該指定如何確定單元格的DataContext。 – stukselbax

+1

是的,我說,參數值設置正確。它總是檢查:if(valuefromcell ==「aaa」)。但我無法從細胞中獲得價值。它總是假的。所以,我期望物體的價值是來自細胞的價值,不是嗎? –

回答

1

你應該在你Convert方法,而不是10返回truefalse,造成財產CheckBoxIsChecked boolean類型。

此外,當valueparameter爲空時,您的方法將拋出NullReferenceException。這也會導致一些問題。

+0

是的,我知道,但我使用了devexpress控件,它知道如果它是0,則爲false,對於其他值爲true。但我的問題是我如何比較單元格的值和參數值。謝謝 ! –