设置子属性的绑定

时间:2012-01-09 12:00:49

标签: silverlight xaml binding mvvm

我的usercontrol上有一个元素

<myControls:MonitorWindow x:Name="WindowFrame" MinHeight="400" />

我需要更改其子属性

MonitorWindow.CloseButton.Visibility.

是否可以将ViewModel的绑定属性绑定到该属性?

有一种方法是使用TwoWay模式的ElementBinding来假场,但它不是很好。

2 个答案:

答案 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" />

这可能会有所帮助...... :)