简体   繁体   English

将数据触发器XAML转换为C#

[英]Converting Data Trigger XAML to C#

<Image Width="16">
    <Image.Style>
        <Style TargetType="{x:Type Image}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Value}" Value="False">
                    <Setter Property="Source" Value="Resources/image1.png"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding Value}" Value="True">
                    <Setter Property="Source" Value="Resources/image2.png"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Image.Style>
</Image>

Referring to the XAML code above, I'm confused in how to convert it to XAML, for example the Data Trigger part, anyone has any idea? 提到上面的XAML代码,我对如何将其转换为XAML感到困惑,例如数据触发器部分,有人知道吗?

Thanks. 谢谢。

After little refactor, I think u need this: 经过少许重构,我认为您需要这样做:

Style style = new Style(typeof(Image));

// Style Setter to handle 'false' case
style.Setters.Add(new Setter(Image.SourceProperty, new BitmapImage(new Uri("Resources/image2.png", UriKind.Relative))));

// DataTrigger to handle 'true' case
DataTrigger dataTrigger = new DataTrigger();
dataTrigger.Binding = new Binding("Value");
dataTrigger.Value = true;
dataTrigger.Setters.Add(new Setter(Image.SourceProperty, new BitmapImage(new Uri("Resources/image1.png", UriKind.Relative))));
style.Triggers.Add(dataTrigger);

this.image.Style = style;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM