我的頭髮在這裏撕裂!我有這種類型的轉換器:爲什麼我的型號轉換器不能正常工作
class CouponBarcodeToVisibilityConverterColumn : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (DesignerProperties.IsInDesignMode)
{
if ((string)parameter == "123456")
{
return Visibility.Visible;
}
return Visibility.Hidden;
}
if (value == null)
{
return Visibility.Visible;
}
var barcodesWanted = ((string)parameter).Split(System.Convert.ToChar("_"));
var actualBarcode = (string)value;
return barcodesWanted.Any(barcodeWanted => barcodeWanted == actualBarcode) ? Visibility.Visible : Visibility.Hidden;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
}
我有以下的參考資料部分用戶控件:
<UserControl.Resources>
<converters:CouponBarcodeToVisibilityConverterColumn x:Key="CouponBarcodeToVisibilityConverter1"/>
</UserControl.Resources>
我有一個名爲投注模型,它看起來像這樣:
public class Bet : INotifyPropertyChanged
{
//Lots of other stuff
private string _barcode;
public string Barcode
{
get { return _barcode; }
set
{
if (value == _barcode) return;
_barcode = value;
OnPropertyChanged("Barcode");
}
}
//Lots of other stuff
}
在我的用戶控件的DataContext的ViewModel中,我有一個Observable Collection of Bet。回到我的用戶控件,我有一個堆棧面板,其數據上下文是前面提到的Observable Collection。
堆棧面板內部我有一個DataGrid,ItemsSource屬性只是{綁定},推遲樹的綁定原樣。
裏面我的DataGrid我有此列:
<DataGridCheckBoxColumn x:Name="IsEwColumn" Binding="{Binding Wagers[0].IsEw,UpdateSourceTrigger=PropertyChanged}" Header="Each Way" Visibility="{Binding Path=Barcode, Converter={StaticResource CouponBarcodeToVisibilityConverter1}, ConverterParameter=123456}" Width="Auto"/>
結合的作品完美的其它元素(每當它被認爲是該複選框被選中),但我喜歡的類型轉換器是沒有的。斷點甚至沒有被擊中。 裏面的條碼屬性下注絕對等於123456.
我錯過了什麼?
它應該是公開課嗎? – 2013-04-09 16:49:26
@DJBurb我有另一個類型轉換器在同一個.cs文件中,它也是私有的,它工作正常。 – JMK 2013-04-09 16:50:10
你在哪裏放置了斷點?你確定沒有前面的空格等嗎?你可以在比較之前試試Trim()嗎? – David 2013-04-09 16:50:10