簡體   English   中英

WPF Datagrid CellFormatting事件

[英]WPF Datagrid CellFormatting event

這是我關於stackoverflow的第一個問題,即使我已經使用兩年了。 (非常有幫助)。 很抱歉,如果沒有正確詢問。

我正在將一個項目從WinForms遷移到WPF,但遇到了一些麻煩。 我有一個數據網格,它會根據SQL請求自動填充,並且在單元格格式化時會觸發“ DataGridViewCellFormatting”事件。 我正在使用此事件使線條顏色不同。 (更人性化)

WinForm上的代碼:

    private void ChangerCouleur(object sender, DataGridViewCellFormattingEventArgs e)
    {
        DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
        row.DefaultCellStyle.SelectionBackColor = Color.Orange;
        row.DefaultCellStyle.SelectionForeColor = Color.Black;
        if (e.RowIndex % 2 == 0)
        {
            row.DefaultCellStyle.BackColor = Color.Khaki;
            row.DefaultCellStyle.ForeColor = Color.Black;
        }
        else
        {
            row.DefaultCellStyle.BackColor = Color.Goldenrod;
            row.DefaultCellStyle.ForeColor = Color.Black;
        }
    }

我在WPF中找不到相同的事件。

提前致謝

DataGridCell與每個WPF可視項一起包含Initialized事件。 為了您的目的,這可能是您想要的。 如果您需要在第一次布置和渲染項目后與它進行交互,則還有一個Loaded事件。

您可能會發現通過使用DataGrid.AlternatingRowBackground來使用純XAML可以達到所需的結果:

<DataGrid RowBackground="Khaki" 
          AlternatingRowBackground="Goldenrod"
          Foreground="Black">
    <DataGrid.Resources>
        <Style TargetType="DataGridCell">
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Background" Value="Orange"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </DataGrid.Resources>
</DataGrid>

查看您的代碼示例,我想您要更改交替行的顏色嗎?

如果是這樣,您可以在XAML樣式中執行以下操作:

<Style TargetType="{x:Type DataGrid}">
    <Setter Property="Background" Value="#FFF" />
    <Setter Property="AlternationCount" Value="2" />
</Style>

 <Style TargetType="{x:Type DataGridRow}">
    <Style.Triggers>
        <Trigger Property="ItemsControl.AlternationIndex" Value="0">
            <Setter Property="Background" Value="Khaki"/>
            <Setter Property="Foreground" Value="Black"/>
        </Trigger>
        <Trigger Property="ItemsControl.AlternationIndex" Value="1">
            <Setter Property="Background" Value="Goldenrod"/>
            <Setter Property="Foreground" Value="Black"/>
        </Trigger>
    </Style.Triggers>
</Style>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM