簡體   English   中英

VB.net XAML datagrid單元格顏色基於值的更改

[英]VB.net XAML datagrid cell colour change based on value

我的XAML代碼:

<Window x:Class="MainWindow"
        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:local="clr-namespace:Datagrid_Binding"
        mc:Ignorable="d"
        Title="MainWindow" Height="8517" Width="1244">
    <Grid>
        <DataGrid x:Name="WaterfallDataGrid" CanUserSortColumns="False" ColumnWidth="60" AutoGenerateColumns="False">



            <DataGrid.Columns>
                <DataGridTextColumn Header="Load" Binding="{Binding Load}"></DataGridTextColumn>
                <DataGridTextColumn Header="PF" Binding="{Binding PF}"></DataGridTextColumn>
                <DataGridTextColumn Header="Spare" Binding="{Binding Spare}"></DataGridTextColumn>
            </DataGrid.Columns>

            <DataGridTextColumn Binding="{Binding Load}">
                <DataGridTextColumn.ElementStyle>
                    <Style TargetType="{x:Type TextBlock}">
                        <Style.Triggers>
                            <Trigger Property="Text" Value="Full Load">
                                <Setter Property="Background" Value="LightGreen"/>
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </DataGridTextColumn.ElementStyle>
            </DataGridTextColumn>


        </DataGrid>
    </Grid>
</Window>

我的VB.net代碼。

Class MainWindow
    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.
        Dim dt3 As New DataTable("Waterfall")

        dt3.Columns.Add("Load")
        dt3.Columns.Add("PF")
        dt3.Columns.Add("Spare")
        'dt3.rows.add(New Object() {"full load", "0.8", "20%"})
        dt3.Rows.Add("full load", "0.8", "20%")
        WaterfallDataGrid.ItemsSource = dt3.DefaultView

    End Sub
End Class

我想做的是,當單元格顯示“滿載”文本時,它會更改其單元格顏色。 我在運行時遇到錯誤,提示“使用ItemsSource之前,Items集合必須為空”。 對此非常困惑。 一些幫助表示贊賞。

問題是您兩次定義了同一列。

<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
        <Grid>
            <DataGrid x:Name="WaterfallDataGrid" CanUserSortColumns="False" ColumnWidth="60" AutoGenerateColumns="False">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Load" Binding="{Binding Load}">
                        <DataGridTextColumn.ElementStyle>
                            <Style TargetType="{x:Type TextBlock}">
                                    <Style.Triggers>
                                    <Trigger Property="Text" Value="full load">
                                        <Setter Property="Background" Value="LightGreen"/>
                                    </Trigger>
                                </Style.Triggers>
                            </Style>
                        </DataGridTextColumn.ElementStyle>
                    </DataGridTextColumn>
                    <DataGridTextColumn Header="PF" Binding="{Binding PF}"></DataGridTextColumn>
                    <DataGridTextColumn Header="Spare" Binding="{Binding Spare}"></DataGridTextColumn>
                </DataGrid.Columns>
            </DataGrid>
        </Grid>
    </Window>

暫無
暫無

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

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