繁体   English   中英

WPF / MVVM-从XAML初始化图像并绑定到ViewModel中的属性

[英]WPF/MVVM - Initialize image from XAML and bind to property in ViewModel

我有一个用WPF MVVM编写的应用程序。 我想从XAML初始化嵌入的图像(这样我就可以在设计器中看到它),而且还希望将其绑定到ViewModel,以便可以从代码进行操作。 我可以像这样成功地初始化它:

<Image x:Name="Image1" Source="pack://application:,,,/images/image1.png" Height="200" Width="55"  Opacity="0.35">

如何将其绑定到ViewModel?

如果要在设计时查看一些数据,可以定义DesignTime视图模型。

<Window
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=designTimeViewModels:DesignViewModel,
                                                       IsDesignTimeCreatable=True}"
/>

并使用以下代码绑定图像源:

<Image Source="{Binding DisplayedImagePath}" />

ViewModel:

public string DisplayedImagePath 
{
    get { return "/AssemblyName;component/Images/ImageName.jpg"; }
}

本主题的主题: 在WPF MVVM中绑定图像

您可以使用FallbackValue ...

    <BitmapImage x:Key="Image1" UriSource="pack://application:,,,/images/image1.png" />

    <Image x:Name="Image1" Source={Binding Image1, FallbackValue={StaticResource Image1}}" />

如果触发了使用后备值的条件,这可能会使您的映像在运行时状态变高。 因此您需要避免这种情况。

暂无
暂无

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

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