如何将控件绑定到MVVM中的visualbrush?

时间:2015-07-29 10:49:17

标签: c# wpf mvvm binding

我有一个可视化画笔,我想将视觉设置为一个元素。我的视觉笔刷的当前示例:

add_filters( 'post_link', 'my_add_qvar', 10, 1);
function my_add_qvar($permalink){
    return add_query_arg('c','c_value',$permalink);
}

但是,我想更改Visual中的值,以便在不同的时间,它可以显示不同控件的视觉效果。我的第一个想法是:

{{1}}

但首先不允许这样做,其次我的viewmodel需要知道我的元素的名称。有没有办法在MVVM中执行此操作,以便我可以随意将视觉更改为另一个元素?

1 个答案:

答案 0 :(得分:0)

这取决于推动视觉变化的实际逻辑。例如,如果它是某种与业务逻辑相关的状态,您可以在视图模型中公开State属性并使用转换器绑定它。

如果它不依赖于BL状态,那么MVVM明智的做法是从后面的视图代码修改视觉,因为它被认为是纯粹的视图逻辑:

<强> XAML

<VisualBrush x:Name="myBrush" Viewport="0,0,0.5,0.5" />

代码隐藏

myBrush.Visual = myPanel;