C# 为什么无法获取我的listview的图像?
大家好,我面临的一个问题是我的IValueConverter无法获得新图像: 我的代码正确吗? XAML文件:C# 为什么无法获取我的listview的图像?,c#,wpf,image,visual-studio-2010,ivalueconverter,C#,Wpf,Image,Visual Studio 2010,Ivalueconverter,大家好,我面临的一个问题是我的IValueConverter无法获得新图像: 我的代码正确吗? XAML文件: <Window.Background> <!--Budget Categories--> <DataTemplate x:Key="CategoriesName"> <Border BorderBrush="#FF000000" BorderThickness="1,1,0,1" Marg
<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>
我找到了答案的解决方案,即字符串的格式。这导致我无法通过几个小时的故障排除和调试来检索映像。我终于找到了解决办法: 我这样解决它:在我的converter.cs中
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string str = (string)value;
string newString = str.TrimEnd();//Newly added compared with the old version
if (newString == "income")
return new BitmapImage(new Uri("pack://application:,,,/images/add.png"));
if (newString == "Expenses")
{
//return new BitmapImage(new Uri(@"pack://application:,,,/HouseWivesSavior;component/images/add.png"));
return new BitmapImage(new Uri("pack://application:,,,/images/edit.png"));
}
return null;
}
从上面的内容可以看出,我添加了以下代码:
字符串newString=str.TrimEnd
因为我不想在字符串的末尾有额外的空格。在插入数据库期间,我的代码如下所示:
if (IncomeButton.IsChecked == true) {
CategoryType = IncomeButton.Content.ToString();
}else{
CategoryType = ExpensesButton.Content.ToString();
}
在运行期间,我发现了为什么值在费用而不是费用的格式中看起来很奇怪。。。因此,我尝试了修剪的结束部分,看看如何&宾果。我把它弄得很灵巧
我参考了这段视频,以了解如何跟踪该值:
感谢大家回答我的问题,很抱歉浪费了你们的时间和精力来解决我的问题:特别感谢回答我的布拉姆:
祝你们好运,祝你们今天愉快。Windows.Background?并修复您的格式设置。描述正在发生的事情。你有其他专栏吗?转换器被调用了吗?
if (IncomeButton.IsChecked == true) {
CategoryType = IncomeButton.Content.ToString();
}else{
CategoryType = ExpensesButton.Content.ToString();
}