1 回答
TA贡献1844条经验 获得超8个赞
好吧,在谷歌搜索之后,我决定创建这个解决方案。也许它会对某人有所帮助。首先,我创建了 Order 实体的部分类以分隔文件,因此当实体框架更新 Order 实体时,它不会覆盖我的自定义。
然后我创建了自定义属性来确定订单是否已交付。所以计算逻辑仍然停留在模型上。
public partial class Order
{
public bool IsOrderDelivered
{
get
{
int orderDelivered = 1;
foreach (var orderItem in this.OrderItems)
{
orderDelivered = orderDelivered * orderItem.Delivered;
}
return orderDelivered == 1 ? true : false;
}
}
}
然后我创建了转换器,它只是将布尔值转换为文本,这就是它存在并且使用正确的方式的原因。
public class OrderStatusToImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (bool)value == true ? @"Skins\approved.png" : @"Skins\denied.png";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
并在部分类中与转换器一起在我的新属性上创建数据绑定。
<StackPanel Margin="0,7,0,6" HorizontalAlignment="Left" Orientation="Horizontal">
<Image Width="25" Height="25" Margin="5 2 0 0" Source="{Binding IsOrderDelivered, Converter={StaticResource OrderStatusToImageConverter}, Mode=OneWay}"/>
<TextBlock Margin="25,5,25,5" Text="{Binding Customer.CustomerName, FallbackValue=N/A, Mode=OneWay}" FontSize="20"/>
</StackPanel>
最后是视觉效果。

- 1 回答
- 0 关注
- 141 浏览
添加回答
举报
