如何将ColorPicker添加到数据网格中的单元格?
我正在做的事情是使用Newtonsoft将JSON对象保存在文本文件中,然后在数据网格中显示它们,对象的保存和加载工作正常,但并不是我想要的。我的问题是,我希望能够保存十六进制数字,然后在以后可以加载它们并在ColorPicker中将其显示为颜色。我现在的方式是使用字符串保存十六进制数字,并在将它们加载为简单文本时加载,这不是我想要的。
所以这里的主要问题是,如何将ColorPicker添加到数据网格的单元格中并显示颜色?
这就是我所拥有的...
XAML
<Window x:Class="Tool.Views.WiresView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:ignore="http://www.galasoft.ch/ignore"
mc:Ignorable="d ignore"
Title="Wires" Height="715" Width="790"
DataContext="{Binding WiresDialogBox, Source={StaticResource Locator}}">
<Grid>
<DataGrid x:Name="dataGrid"
ItemsSource="{Binding WiresObservableCollection}"
AutoGenerateColumns="False">
<DataGrid.Columns >
<DataGridTextColumn Header="Length" Binding="{Binding WireLength}"></DataGridTextColumn>
<DataGridTextColumn Header="Color" Binding="{Binding WireColor}"></DataGridTextColumn>
<DataGridTextColumn Header="Description" Binding="{Binding WireDescription}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
模型
public class Wire
{
public string WireLength { get; set; }
public string WireColor { get; set; }
public string WireDescription { get; set; }
}
仅供参考-
我正在使用MVVM Light
,Newtonsoft
解析JSON对象,并使用toolkit
解析ColorPicker。
答案 0 :(得分:0)
我按照DataGridTemplateColumn
的建议使用了ASh
。
这是我的方法。
<DataGrid.Columns >
<DataGridTextColumn Header="Length" Binding="{Binding WireLength}"></DataGridTextColumn>
<DataGridTemplateColumn Header="Color" SortMemberPath="WireColor">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Background="{Binding Path=WireColor, Mode=TwoWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Description" Binding="{Binding WireDescription}"></DataGridTextColumn>
</DataGrid.Columns>