我的usercontrol上有一个元素
<myControls:MonitorWindow x:Name="WindowFrame" MinHeight="400" />
我需要更改其子属性
MonitorWindow.CloseButton.Visibility.
是否可以将ViewModel的绑定属性绑定到该属性?
有一种方法是使用TwoWay模式的ElementBinding来假场,但它不是很好。
答案 0 :(得分:1)
你应该做两件事:
首先,您应该将CloseButtonVisibility公开为属性。
第二件事是,为了将值绑定到此属性,您应该将此属性定义为Dependcy属性,有关如何定义依赖项属性的说明,请参阅以下链接: UNDERSTANDING: DEPENDENCY PROPERTIES IN SILVERLIGHT
祝你好运, 利奥尔答案 1 :(得分:1)
您应该创建类型可见性的Dependency Property
,以便可以将其绑定到您的控件,并且可以从控件外部进行设置。
For Ex让Dependency属性命名为CloseButtonVisibility存在于用户Control的codebehaind中(使用propdp
然后press TAB or double TAB
作为片段快捷方式创建一个)
<UserControl Name="Control">
<Button Visibility="{Binding Path=CloseButtonVisibility,ElementName=Control,Mode=TwoWay}"></Button>
</UserControl>
<myControls:MonitorWindow x:Name="WindowFrame" MinHeight="400" CloseButtonVisibility="Hidden" />
这可能会有所帮助...... :)