Bre*_*obi 7 data-binding wpf mvvm
我正在使用MVVM并尝试将Image的Source属性数据绑定到我的ViewModel,以便我可以动态更改图标.这个最好的模式是什么?我仍然可以灵活地更改我的ViewModel以适应,但我不知道从哪里开始xaml或ViewModel.
为了清楚起见,我不希望我的ViewModel知道特定的图像(这是视图要知道的),只是触发不同图像的状态.现在我只有两个州,比如红色和绿色.我应该创建一个Enum属性还是一个bool?然后我如何数据绑定切换图像源?
Ree*_*sey 10
您可以使用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>
Run Code Online (Sandbox Code Playgroud)
这将使用"1.png",但是当你的枚举在VM中设置为"Image2"时,它会切换到2.png.可以根据需要添加更多DataTriggers.
| 归档时间: |
|
| 查看次数: |
5176 次 |
| 最近记录: |