【问题标题】:WPF Datagrid - BindingWPF Datagrid - 绑定
【发布时间】:2015-07-02 04:04:42
【问题描述】:

请您帮忙绑定一下。

我有四个使用 XAML 绑定绑定到数据网格源的字段。 字符串字段1、字段2、字段3 布尔字段4

我需要根据 field4 中的值(这是一个布尔值)将 field3 的颜色更改为红色。

【问题讨论】:

  • 您可能希望在DataGridCellTemplate 上使用DataTrigger。应该能够在线找到大量信息,或者如果您包含 XAML,我相信有人会帮助您提供所需的确切语法。 :)

标签: wpf binding


【解决方案1】:

您可以使用转换器将boolean 转换为SolidColorBrush。值转换器正如其名称所暗示的那样:它将一个值转换为另一个值。在您的情况下,您希望将boolean 转换为SolidColorBrush,具体取决于boolean 是什么。

这是一个关于如何制作价值转换器以及如何使用它的简短示例。它必须实现位于System.Windows.Data 中的IValueConvert 接口。通常,您只需要完全实现Convert 方法即可。

class BooleanToBrush : IValueConverter
{
    Brush solidRed = new SolidColorBrush(Colors.Red);
    Brush empty = new SolidColorBrush();

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        bool showRed = (bool)value;
        if (showRed)
            return solidRed;
        else
            return empty;
    }

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

然后使用它:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfApplication1"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <local:BooleanToBrush x:Key="b2b" />
</Window.Resources>
<Grid Background="{Binding someBooleanProperty, Converter={StaticResource b2b}}">
</Grid>

更多关于价值转换器的信息可以在这里找到:http://www.wpftutorial.net/ValueConverters.html

【讨论】:

    猜你喜欢
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 2015-01-26
    • 2013-10-14
    • 2011-05-14
    • 2015-04-02
    相关资源
    最近更新 更多