如何在wpf中实现黑/白表?

时间:2018-04-20 13:37:20

标签: c# wpf datagrid

我想制作一个小型WPF项目,其中包含一个不应在单元格中具有文本值的表,而是根据值更改背景颜色。该表应如下所示:

1

我应该使用哪个控件以及如何通过行和列的索引更改颜色(对于此控件)。

我已经编写了一些代码,但它不起作用。

<Grid Name="Grid">
    <DataGrid Name="DataGrid" ItemsSource="{Binding DataView, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"  HeadersVisibility="None" SelectionUnit="Cell">

        <DataGrid.CellStyle>
            <Style TargetType="DataGridCell">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Value}" Value="true">
                        <Setter Property="Background" Value="Black"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Value}" Value="false">
                        <Setter Property="Background" Value="White"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </DataGrid.CellStyle>
    </DataGrid>
</Grid>

 public class MainViewModel : ReactiveObject
{
    [Reactive]
    public DataView DataView { get; set; }
    public MainViewModel()
    {
        var array = new int[2, 2] { { 1, 0 }, { 1, 0 } };
        var rows = array.GetLength(0);
        var columns = array.GetLength(1);

        var t = new DataTable();
        for (var c = 0; c < columns; c++)
        {
            t.Columns.Add(new DataColumn());
        }

        for (var r = 0; r < rows; r++)
        {
            var newRow = t.NewRow();
            for (var c = 0; c < columns; c++)
            {
                newRow[c] = new MyCell() {Value = array[r, c] == 1};
            }
            t.Rows.Add(newRow);
        }
        DataView = t.DefaultView;
    }
}

 public class MyCell
    {
        public bool Value { get; set; }
    }

0 个答案:

没有答案