如何设置单元格的颜色(DataGrid WPFtoolKIt)?

发布于 2024-09-26 07:41:30 字数 602 浏览 5 评论 0原文

alt text

我需要这套红色。怎么办呢? DataTable dtSet = new DataTable();

    string sql = @"requevst";
    using (MySqlConnection connection = ConnectToDataBase.GetConnection())
    {
        ...
        int count = adapter.Fill(dtSet);
    }

    double totalPrice = 0;
    foreach (DataRow row in dtSet.Rows)
    {
        totalPrice += Double.Parse(row["price"].ToString());
    }
    DataRow lastRow = dtSet.NewRow();
    lastRow["price"] = totalPrice;
    dtSet.Rows.Add(lastRow);

    datagrid.DataContext = dtSet;

alt text

i need this set RED color. how to do it?
DataTable dtSet = new DataTable();

    string sql = @"requevst";
    using (MySqlConnection connection = ConnectToDataBase.GetConnection())
    {
        ...
        int count = adapter.Fill(dtSet);
    }

    double totalPrice = 0;
    foreach (DataRow row in dtSet.Rows)
    {
        totalPrice += Double.Parse(row["price"].ToString());
    }
    DataRow lastRow = dtSet.NewRow();
    lastRow["price"] = totalPrice;
    dtSet.Rows.Add(lastRow);

    datagrid.DataContext = dtSet;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

很糊涂小朋友 2024-10-03 07:41:30

我从未使用过数据集,但使用 clr-objects 这是一个简单的任务:

public enum RowType { Ordinary, Total };
public class MyRowItem
{
    public string Name { get; set; }
    public int Price { get; set; }
    public RowType RowType { get; set; }
}

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        var items = new List<MyRowItem>
        {
            new MyRowItem{Name="Jack White", Price = 2500, RowType=RowType.Ordinary},
            new MyRowItem{Name="John Black", Price = 3000, RowType=RowType.Ordinary}
        };
        items.Add(new MyRowItem { Name = null, Price = items.Sum(i => i.Price), RowType = RowType.Total });
        this.DataContext = items;
    }
}

Xaml:

<Window.Resources>
    <DataTemplate x:Key="priceTemplate">
        <TextBlock x:Name="priceText" Text="{Binding Price}" Margin="-1"/>
        <DataTemplate.Triggers>
            <DataTrigger Binding="{Binding RowType}" Value="Total">
                <Setter Property="Background" TargetName="priceText" Value="Red"/>
            </DataTrigger>
        </DataTemplate.Triggers>
    </DataTemplate>
</Window.Resources>

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}">
    <DataGrid.Columns>
        <DataGridTextColumn Header="ФИО" Binding="{Binding Name}"/>
        <DataGridTemplateColumn Header="Цена" CellTemplate="{StaticResource priceTemplate}"/>
    </DataGrid.Columns>
</DataGrid>

但是,我建议您在单独的 TextBlock 中显示总和。

I have never used datasets, but it is a simple task with clr-objects:

public enum RowType { Ordinary, Total };
public class MyRowItem
{
    public string Name { get; set; }
    public int Price { get; set; }
    public RowType RowType { get; set; }
}

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        var items = new List<MyRowItem>
        {
            new MyRowItem{Name="Jack White", Price = 2500, RowType=RowType.Ordinary},
            new MyRowItem{Name="John Black", Price = 3000, RowType=RowType.Ordinary}
        };
        items.Add(new MyRowItem { Name = null, Price = items.Sum(i => i.Price), RowType = RowType.Total });
        this.DataContext = items;
    }
}

Xaml:

<Window.Resources>
    <DataTemplate x:Key="priceTemplate">
        <TextBlock x:Name="priceText" Text="{Binding Price}" Margin="-1"/>
        <DataTemplate.Triggers>
            <DataTrigger Binding="{Binding RowType}" Value="Total">
                <Setter Property="Background" TargetName="priceText" Value="Red"/>
            </DataTrigger>
        </DataTemplate.Triggers>
    </DataTemplate>
</Window.Resources>

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}">
    <DataGrid.Columns>
        <DataGridTextColumn Header="ФИО" Binding="{Binding Name}"/>
        <DataGridTemplateColumn Header="Цена" CellTemplate="{StaticResource priceTemplate}"/>
    </DataGrid.Columns>
</DataGrid>

However, I recommend you to show total sum in separate TextBlock.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文