HI to all I facing one problem which is that my IValueConverter cannot get the new image:
Is my code correct? XAML FILE:
<Window.Background>
<!--Budget Categories-->
<DataTemplate x:Key="CategoriesName">
<Border BorderBrush="#FF000000" BorderThickness="1,1,0,1" Margin="-6,-2,-6,-2">
<StackPanel Margin="6,2,6,2">
<TextBlock Text="{Binding Path=CategoriesName}"/>
</StackPanel>
</Border>
</DataTemplate>
<DataTemplate x:Key="CategoriesType">
<Border BorderBrush="#FF000000" BorderThickness="1,1,0,1" Margin="-6,-2,-6,-2">
<!--<StackPanel Margin="6,2,6,2">
<TextBlock Text="{Binding Path=CategoriesType}"/>
</StackPanel>-->
<StackPanel Margin="6,2,6,2">
<Image Source="{Binding Path=CategoriesType,Converter={StaticResource typeToImageConverter}}" Width="16" Height="16" Margin="3,0"/>
<TextBlock Text="{Binding Path=CategoriesType}"/>
</StackPanel>
</Border>
</DataTemplate>
<DataTemplate x:Key="CategoriesExpect">
<Border BorderBrush="#FF000000" BorderThickness="1,1,0,1" Margin="-6,-2,-6,-2">
<StackPanel Margin="6,2,6,2">
<TextBlock Text="{Binding Path=CategoriesTotalExpect}"/>
</StackPanel>
</Border>
</DataTemplate>
<DataTemplate x:Key="CategoriesActual">
<Border BorderBrush="#FF000000" BorderThickness="1,1,1,1" Margin="-6,-2,-6,-2">
<StackPanel Margin="6,2,6,2">
<TextBlock Text="{Binding Path=CategoriesTotalActual}"/>
</StackPanel>
</Border>
</DataTemplate>
<!--Budget Categories-->
</Window.Background>
<ListView Height="320" HorizontalAlignment="Left" Margin="12,154,0,0" Name="CategoriesListView" VerticalAlignment="Top" Width="316" ItemsSource="{Binding}" ItemContainerStyle="{DynamicResource MyItemContainerStyle}">
<ListView.View>
<GridView>
<GridViewColumn Header="Categories" Width="150" CellTemplate="{DynamicResource CategoriesName}" />
<GridViewColumn Header="Types" Width="40" CellTemplate="{DynamicResource CategoriesType}"/>
<GridViewColumn Header="Expect" Width="60" CellTemplate="{DynamicResource CategoriesExpect}"/>
<GridViewColumn Header="Actual" Width="60" CellTemplate="{DynamicResource CategoriesActual}"/>
</GridView>
</ListView.View>
</ListView>
This is my TypeToImageConverter.cs:
public class TypeToImageConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
string str = (string)value;
if (str == "income")
return new BitmapImage(new Uri("pack://application:,,,/images/add.png"));
if (str == "Expenses")
{
return new BitmapImage(new Uri(@"pack://application:,,,/HouseWivesSavior;component/images/add.png"));
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}