gpt4 book ai didi

wpf - UserControl 根据数据类型更新图像

转载 作者:行者123 更新时间:2023-12-03 10:23:59 31 4
gpt4 key购买 nike

我有一个显示客户、公司或员工信息的程序。我想在此图像旁边显示一个图标,该图标会根据我显示的信息类型(客户、公司或员工)而变化。

我的资源字典中有以下设置来指定图像:

<ImageSource x:Key="CompanyIcon">../Images/companies_32.png</ImageSource>
<ImageSource x:Key="EmployeeIcon">../Images/employee_32.png</ImageSource>
<ImageSource x:Key="CustomerIcon">../Images/customer_32.png</ImageSource>

在我的 View 模型中,我想根据我正在使用的数据类型分配图像。例如,如果我正在查看公司的信息(使用 EF 4.5 的“公司”类型的 DBContext),我想将图像设置为“公司图标”的图像。

如何将图像分配给 View 模型(并在我在“公司”、“员工”或“客户”DBContext 类型之间更改时更改它),然后将此图像绑定(bind)到 View 中的占位符(它将显示在网格列)。

最佳答案

我会使用 DataTrigger设置 Image.Source基于对象类型,并使用返回 typeof(value) 的转换器获取类型

<Style x:Key="MyStyle" TargetType="{x:Type Image}">
<!-- Default Value -->
<Setter Property="Source" Value="{StaticResource CompanyIcon}" />

<Style.Triggers>
<DataTrigger Binding="{Binding Converter={StaticResource ObjectToTypeConverter}}"
Value="{x:Type local:Employee}">
<Setter Property="Source" Value="{StaticResource EmployeeIcon}" />
</DataTrigger>
<DataTrigger Binding="{Binding Converter={StaticResource ObjectToTypeConverter}}"
Value="{x:Type local:Customer}">
<Setter Property="Source" Value="{StaticResource CustomerIcon}" />
</DataTrigger>
</Style.Triggers>
</Style>

我通常使用的转换器如下所示:
public class ObjectToTypeConverter : IValueConverter
{
#region IValueConverter Members

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return null;

return value.GetType();
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}

#endregion
}

关于wpf - UserControl 根据数据类型更新图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13367655/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com