WPF图像未更改属性已在视图模型.NET 3.5中更改绑定

时间:2017-07-25 13:41:15

标签: c# wpf mvvm binding

在MVVM中,我设置了一些用于绑定到视图控件的属性。

我在视图中有以下图片:

<Image VerticalAlignment="Center" HorizontalAlignment="Left" 
   Source="/Common.Images;component/Images/Info.png" 
   Height="48" Width="48" Margin="20,10">
    <Image.Style>
        <Style TargetType="{x:Type Image}">
            <Setter Property="Source" Value="/Common.Images;component/Images/Info.png"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding MessageType}" Value="1">
                    <Setter Property="Source" Value="/Common.Images;component/Images/Cancel.png"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Image.Style>
</Image>

然后我在视图模型中有以下属性:

private int msgType = 0;

public int MessageType
{
    get
    {
        return this.msgType;
    }

    set
    {
        if (this.msgType== value)
        {
            return;
        }

        this.msgType= value;
        OnPropertyChanged("MessageType");
    }
}

当发现某些错误情况时,从我的视图模型中我更新了这个属性:

this.MessageType = (int) MessageTypes.Error;

MessageTypes是在视图模型中定义的枚举:

public enum MessageTypes
{
    Info = 0,
    Error = 1
};

我的问题是,在设置属性MessageType时,绑定到此属性的图像不会更改。正在正确触发OnPropertyChanged。那么我做错了什么?它应该显示Cancel.png图像而不是Info.png。我想知道xaml解析器是否正确识别int类型...也许Value =“1”不正确我需要以另一种方式指定xaml解析器知道它是一个整数?

0 个答案:

没有答案