我正在做一个预算模块。 我想问一下如何设置GridViewColumn根据我从数据库中检索到的值“收入”&amp ;;来显示我想要的图像。 “花费”。我知道如何从数据库中检索值&在lisview中显示,但我今天的问题是,我希望有一些条件,当发现“收入”将填入收入图像然后发现费用将填充另一个图像???
这可能吗?希望尽快收到回复。谢谢。
我会提供我的代码以便更好地参考: XAML文件:
<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>
</Border>
</DataTemplate>
<Style x:Key="MyItemContainerStyle" TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="VerticalContentAlignment" Value="Stretch" />
<!--<EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListViewItem_PreviewMouseLeftButtonDown" />-->
</Style>
</Window.Resources>
<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="Types" Width="40" CellTemplate="{DynamicResource CategoriesType}"/>
</GridView>
</ListView.View>
</ListView>
答案 0 :(得分:0)
在模板中添加图像标记并使用转换器根据字符串值(未经测试的代码)返回正确的图像
XAML:
<UserControl.Resources>
<Converters:TypeToImageConverter x:Key="typeToImageConverter" />
</UserControl.Resources>
<StackPanel Margin="6,2,6,2">
<Image Source="{Binding Path=CategoriesType,Converter={StaticResource typeToImageConverter}"/>
<TextBlock Text="{Binding Path=CategoriesType}"/>
</StackPanel>
输入Image Converter.cs:
public class TypeToImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
throw ...
var str = value.ToString();
if (str == "income")
return new BitmapImage(...);
if (str = "expenses")
return new BitmapImage(...);
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
答案 1 :(得分:0)
我找到了我的答案的解决方案,即字符串的格式。这导致我无法在几小时的故障排除中检索图像。调试。我终于找到了解决办法:)
我这样解决:在我的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;
}
从上面提到你可以看到我添加了这段代码:“string newString = str.TrimEnd();”
是因为我不希望字符串末尾有额外的空格。在插入数据库期间,我的代码如下所示:
if (IncomeButton.IsChecked == true) {
CategoryType = IncomeButton.Content.ToString();
}else{
CategoryType = ExpensesButton.Content.ToString();
}
在运行期间,我发现为什么价值在“费用”而不是“费用”的格式中看起来很奇怪...因此我尝试使用最终部分的修剪看看&amp;答对了。我觉得它很有魅力。
我引用了这段视频,了解如何追踪价值:http://www.youtube.com/watch?v=evO3_xutDYI
感谢所有人回答我的问题&amp;抱歉浪费你的时间和努力解决我的问题:)祝大家好运祝你有愉快的一天。