我在DataGridTextColumn上有一個布爾值,我想打印一個圖像如果它是真的,而另一個圖像是假的。bool圖像c#引用對象沒有設置爲對象的實例
這是數據網格:
<DataGrid x:Name="DonneesBrutes" IsReadOnly="True" ItemsSource="{Binding Path=ResultatCollectionGrande}" Margin="10,65,0,0" AutoGenerateColumns="False" EnableRowVirtualization="True" RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.Columns>
<DataGridTextColumn x:Name="PrisEnCompte" Width="50" Binding="{Binding Path=Flag,Converter={StaticResource BoolImageConverter}}" Header="PEC"></DataGridTextColumn>
這是Windows.Resources,其中I定義轉換器和其圖像被用於:
<Window.Resources>
<Image x:Key="TrueImage" Source="booleanTrue.png"/>
<Image x:Key="FalseImage" Source="booleanFalse.png"/>
<local:BoolToImage TrueImage="{StaticResource TrueImage}" FalseImage="{StaticResource FalseImage}" x:Key="BoolImageConverter"/>
</Window.Resources>
並且有轉換器:
public class BoolToImage : IValueConverter
{
public Image TrueImage { get; set; }
public Image FalseImage { get; set; }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var viewModel = (ViewModel)(value as System.Windows.Controls.ListBoxItem).DataContext;
if (!(value is bool))
{
return null;
}
bool b = (bool) viewModel.ActiviteCollection.FirstOrDefault().Flag;
if (b)
{
return this.TrueImage;
}
else
{
return this.FalseImage;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
當我聲明我的var viewModel
時我有錯誤the reference object is not set to an instance of an object
我認爲這是聲明(value as System.Windows.Controls.ListBoxItem)
這是錯誤的,但我不知道如何解決這個問題。
A精度,viewModel.ActiviteCollection.FirstOrDefault().Flag;
是我發送到DataGridTextColumn我想要轉換爲圖像的布爾值。
我希望我足夠精確,如果您需要更多信息,我可以編輯我的帖子。
感謝您的幫助。
Greetings,
Flo。
'我有錯誤引用對象未設置爲對象的實例我認爲它是聲明(值爲System.Windows.Controls.ListBoxItem)''。任何機會,你可以簡單地在你的轉換器中放置一個斷點並檢查你自己?在運行時查看什麼類型的值,它應該可以幫助您調試您的問題。 – decPL 2014-09-30 09:09:08
Ad 1.如果值爲true,您如何期望能夠將其轉換爲System.Windows.Controls.ListBoxItem? 廣告2. http://msdn.microsoft.com/en-us/library/ktf38f66%28v=vs.71%29.aspx – decPL 2014-09-30 09:16:22