我想知道如何将Window.Effect
绑定到ViewModel
,以便它可以成为控制窗口外观的ViewModel
。
我知道我们可以逐个绑定属性,如下所示;但是,这并不是真正的绑定Effect
而是将设置绑定到Effect
,这与我不感兴趣。
<Window.Effect>
<BlurEffect Radius="{Binding UIElementEffect.Radius}" />
</Window.Effect>
为什么不像这样绑定:
<Window
...
Effect ="{Binding WindowEffect}">
?
至于"如果将特定于WPF/UI的对象放入ViewModel是一个坏主意"和其他"最佳实践"和模式,我个人有一个规则:我问自己:
- 如果我违反这个最佳实践,我会遇到什么真正的问题(顺便说一句,最佳实践总是对每个人都是最好的吗?;))?我所说的真实是指真实的——而不是某人在一本书或某个论坛上写的理论问题。这些问题是否适用于我的特定项目?这个问题真正发生的可能性有多大?缺点(实际上可能永远不会出现的问题)是否超过了违反"最佳实践"(如简单性、使用代码的舒适性等)的优点?
我不建议违反最佳实践,我建议不要盲目遵循它们。