2012-02-08 54 views

回答

1

我不确定你试图达到什么目的,但是如果你有多个用户控件,你希望它们彼此对话并共享数据或调用某种事件。在不增加控件之间的内聚的情况下,完成此操作的一个好方法是使用消息传递系统发布并注册消息。这将允许您触发事件并在不同控件之间传递数据。有几个框架支持这一点。

你可能想看看Prism EventAggregator。 Prism库可以从微软网站下载。

另一个框架是http://galasoft.ch/mvvm/。看看Messenger类。

如果要更改其他对象的DataContext,最简单的方法是将对象的datacontext绑定到ModelView中的属性。否则,只需在XAML中为该对象设置x:Name属性,并在后面的代码中引用该属性,以便在调用该事件时将datacontext更改为不同的内容。如果您位于同一个名称范围/类中,则假定这是假设的。

* .XAML

<ComboBox x:Name="ComboBox1"> 
    <ComboBoxItem Content="Blah"/> 
</ComboBox> 

* .XAML.cs

public void SomeEventInvoked(object sender, EventArgs e) 
{ 
     ComboBox1.DataContext = someObject; 
} 
相关问题