C# 如何从WP7中的视图模型更改控件模板?
嗨,基本上我已经能够将我的逻辑完全分离成一个视图模型,除了一件事。我有一个按钮和两个不同的模板,可以应用到按钮。基本上,当播放音频时,会显示一个模板,而当不播放时,会显示另一个模板。当我使用后面的代码时,这很容易,因为我可以访问页面的资源,我所要做的就是相应地设置它。现在我的代码已经在VM中了,但我不确定如何更改模板C# 如何从WP7中的视图模型更改控件模板?,c#,silverlight,windows-phone-7,mvvm,mvvm-light,C#,Silverlight,Windows Phone 7,Mvvm,Mvvm Light,嗨,基本上我已经能够将我的逻辑完全分离成一个视图模型,除了一件事。我有一个按钮和两个不同的模板,可以应用到按钮。基本上,当播放音频时,会显示一个模板,而当不播放时,会显示另一个模板。当我使用后面的代码时,这很容易,因为我可以访问页面的资源,我所要做的就是相应地设置它。现在我的代码已经在VM中了,但我不确定如何更改模板 我想到的第一个想法是,可能会在需要时向视图发送一条消息来更改它。这是唯一的办法吗?我确实看到WPF有一些触发器,看起来很不错,因为您不必发送消息,而且代码背后也没有代码。有人找到了
我想到的第一个想法是,可能会在需要时向视图发送一条消息来更改它。这是唯一的办法吗?我确实看到WPF有一些触发器,看起来很不错,因为您不必发送消息,而且代码背后也没有代码。有人找到了解决方法吗?您可能可以编写一个
值转换器
,查看公共bool isplay
属性并将其转换为适当的模板。然后,您可以使用转换器作为转换器,将按钮
模板属性数据绑定到IsPlaying
属性
我没有在模板上尝试过,但我在位图
和可见性
上使用过它,取得了巨大的成功,所以我很确定它在这里也会起作用
这是一个,如果你以前没用过的话
也就是说,在这种情况下,消息传递并不是一个可怕的解决方案。有时,有些代码只想保存在codebehind文件中。动画开始/停止代码是我想到的另一个例子