c# - 基于属性的列表视图项目背景颜色(WPF / MVVM)
问题描述
我想在 ListView 中显示标题和颜色(见图 - 将 14474460 替换为相应的颜色)
颜色将由颜色选择器选择(参见“OrangeRed”)。所以一切正常,SQLite 数据库更新,数字相应改变,但我不能改变背景。
我的 XAML
<GridViewColumn Header="Color">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Color}" Background="{Binding ColorBackground}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
我的 Color 属性(绑定到 ColorPicker - 将颜色存储为 System.Windows.Media.Color)
public Color Color
{
get { return color; }
set
{
color = value;
NotifyPropertyChanged("Color");
}
}
我的背景颜色属性(绑定到文本块 - 猜我这里需要一个画笔,对吧?)
public Brush ColorBackground
{
get { return colorbackground; }
set
{
colorbackground = new SolidColorBrush(Color);
NotifyPropertyChanged("ColorBackground");
}
}
我的 LeaveType 实体
using Dapper.Contrib.Extensions;
using System.ComponentModel;
using System.Windows.Media;
namespace Calendar.Database.Entities
{
[Dapper.Contrib.Extensions.Table("LeaveTypes")]
public class LeaveTypeEntity : Entity, INotifyPropertyChanged
{
private long color;
public long Color
{
get
{
return color;
}
set
{
color = value;
NotifyPropertyChanged("Color");
}
}
private string type;
public string Type
{
get
{
return type;
}
set
{
type = value;
NotifyPropertyChanged("Type");
}
}
private Brush colorbackground;
[Computed]
public Brush ColorBackground
{
get { return colorbackground; }
set
{
colorbackground = value;
NotifyPropertyChanged("ColorBackground");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}
我的助手消息框(在更新方法之后)返回 ColorBackground 的十六进制代码,所以我想这不是问题。任何人都可以帮忙吗?
更新 ColorBackground 属性(ViewModel 文件)
public Brush ColorBackground { get; set; }
颜色属性(ViewModel 文件)
private Color color;
public Color Color
{
get { return color; }
set
{
color = value;
ColorBackground = new SolidColorBrush(Color);
NotifyPropertyChanged("Color");
}
}
解决方案
推荐阅读
- c++ - 模板类 std::valarray 的推演指南
- python - django + celery:为一名工作人员禁用预取,有错误吗?
- javascript - 为什么 Google Page Speed Insights 说要缩小 JS
- android - 房间交界处 Pojo
- google-data-studio - 从 Data Studio 计算字段的计算中排除 Null
- python - 基本的 ansible 自定义模块,触摸文件
- macos - macOS 钥匙串 ACL 如何确定哪些应用程序可以访问?
- aws-api-gateway - 如何连接到在 Fargate 上运行的 ECS 服务?
- mysql - 通过powershell安装Mysql.msi时出现以下错误
- awk - 从 awk 中的输入文件计算百分比和等级