簡體   English   中英

更改數據綁定DataGridView中的顯示信息

[英]Alter Displayed Information in data-bound DataGridView

我有一個數據綁定的datagridview。 如下所示,其中一列鏈接到對象的布爾值。 檢索布爾值的方法是“ curResultSet.Pass”。 我不希望在常規單元格中說“ True”或“ False”,而是希望該列具有“ Pass”圖標或“ Fail”圖標,具體取決於“ curResult.Pass”的值。

我可以肯定的是,將.png設置為Icon的方法是錯誤的,但我稍后會擔心。 現在,我最大的擔心是我不確定如何根據布爾值在DataGridViewImageViewColumn中設置某個圖標,如下面的代碼所示。

DataGridViewImageColumn imgCol = new DataGridViewImageColumn(true);

foreach(RunResult curResult in curResultSet)
{
     bindingSource1.Add(curResult);
}

resultDataGridView.AutoGenerateColumns = false;
resultDataGridView.DataSource = bindingSource1;

imgCol.Image = Image.FromFile(imageFilePath + "NG icon.png");
imgCol.Icon = Icon.ExtractAssociatedIcon(imageFilePath + "OK icon.png");
imgCol.ValuesAreIcons = true;

resultDataGridView.Columns.Add(imgCol);
resultDataGridView.Columns[resultDataGridView.ColumnCount - 1].DataPropertyName = "Pass";
resultDataGridView.Columns[resultDataGridView.ColumnCount - 1].Name = "status";

有人知道如何在“ curResultSet []。Pass == True”時顯示我的“ OK icon.png”,而在“ curResultSet []。Pass == False”時顯示“ NG icon.png”嗎? 謝謝!

您應該使用轉換器並將圖像源綁定到布爾值:公共類BoolToUriConverter:IValueConverter {private const string filePath =“ your path”;

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        bool val = (bool)value ;
        string path = (val == true) ? $"{filePath}OK icon.png" : $"{filePath}NG icon.png";
        return new Uri(path);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

並使用它將您的布爾列綁定到圖像列

<DataGrid ItemsSource="{Binding Collection1}" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Field1" Binding="{Binding Field1}"></DataGridTextColumn>
                <DataGridTextColumn Header="Field2" Binding="{Binding Field2}"></DataGridTextColumn>
                <DataGridCheckBoxColumn Header="Field3" Binding="{Binding Field3}"></DataGridCheckBoxColumn>
                <DataGridTemplateColumn>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Image Source="{Binding Field3, Converter={StaticResource boolToUriConverter}}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>

暫無
暫無

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

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