WPF 控件样式属性绑定

Xaml页面创建模板控件,绑定颜色关键字 

<Window.Resources>
        <!--创建颜色关键字-->
        <local:DataColorConverter x:Key="DataColorConverterStyle"/>
        <!--创建控件模板-->
        <DataTemplate x:Key="ColorBall">
            <Button Width="40" Height="40" IsEnabled="False" Style="{DynamicResource MetroCircleButtonStyle}" Name="BT_ColorBall" Background="{Binding Path=ColorValue, Converter={StaticResource DataColorConverterStyle}}">
                <Rectangle Width="15" Height="15" Fill="{Binding Path=Background, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Button}}}">
                    <Rectangle.OpacityMask>
                        <VisualBrush Stretch="Fill" Visual="{DynamicResource appbar_city}" />
                    </Rectangle.OpacityMask>
                </Rectangle>
            </Button>
        </DataTemplate>
    </Window.Resources>

调用模板控件 

<ListView x:Name="ServiceList">
                    <ListView.View>
                        <GridView>
                             <!--绑定模板控件-->
                            <GridViewColumn Width="50" CellTemplate="{StaticResource ColorBall}"></GridViewColumn>
                            <GridViewColumn Header="Name" Width="200" DisplayMemberBinding="{Binding Name}"></GridViewColumn>
                            <GridViewColumn Header="Status"  Width="80" DisplayMemberBinding="{Binding Status}"></GridViewColumn>
                            <GridViewColumn Header="Log On As" Width="120" DisplayMemberBinding="{Binding LogOnAs}"></GridViewColumn>
                            <GridViewColumn Header="Depends On" Width="120" DisplayMemberBinding="{Binding DependingOn}"></GridViewColumn>
                            <GridViewColumn Header="Description" Width="500" DisplayMemberBinding="{Binding Description}"></GridViewColumn>
                        </GridView>
                    </ListView.View>
                </ListView>

C# 定义转换模式,当listview中当colorvalue值被 “Background="{Binding Path=ColorValue,” 绑定,作为Convert方法第一个参数Value的值,需要强制转换类型后做判断。

 ///// 定义转换器       
    [ValueConversion(typeof(string), typeof(SolidColorBrush))]
    public class DataColorConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {

            if ((string)value == "0")
            {
                return new SolidColorBrush(Colors.Red);
            }
            if ((string)value == "1")
            {
                return new SolidColorBrush(Colors.Yellow);
            }
            if((string)value == "2")
            {
                return new SolidColorBrush(Colors.Green);
            }
            return new SolidColorBrush(Colors.Red);
        }

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值