gpt4 book ai didi

MVVM 中的 WPF 数据绑定(bind) Image.Source

转载 作者:行者123 更新时间:2023-12-03 02:59:04 25 4
gpt4 key购买 nike

我正在使用 MVVM,并尝试将 Image 的 Source 属性数据绑定(bind)到我的 ViewModel,以便我可以动态更改图标。为此应遵循的最佳模式是什么?我仍然可以灵活地更改我的 ViewModel 以适应,但我不知道从 xaml 或 ViewModel 的哪里开始。

需要明确的是,我不希望我的 ViewModel 了解特定图像(这是 View 需要知道的),而只是了解触发不同图像的状态。现在我只有两个状态,比如说红色和绿色。我应该创建一个枚举属性还是一个 bool 值?那么如何通过数据绑定(bind)来切换图像源呢?

最佳答案

您可以使用 DataTrigger,并根据 ViewModel 中的属性值更改图像(完全在 XAML 中)。我个人会使用枚举,因为您可能需要多个状态。

VisualStateManager 也适用于此,但需要 WPF Futures 或 .NET 4。

为了使用 DataTrigger,您可以执行以下操作:

<Image>
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="1.png" />
<Style.Triggers>
<DataTrigger Binding="{Binding ViewModelEnumProperty}" Value="Image2">
<Setter Property="Source" Value="2.png" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>

这将使用“1.png”,但是当您的枚举在虚拟机中设置为“Image2”时,它将切换为 2.png。可以根据需要添加更多数据触发器。

关于MVVM 中的 WPF 数据绑定(bind) Image.Source,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2531539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com