1
使用标准xaml工具调用事件触发器时,是否可以更改其他对象的DataContext的值?日Thnx。Animate DataContext Silverlight
使用标准xaml工具调用事件触发器时,是否可以更改其他对象的DataContext的值?日Thnx。Animate DataContext Silverlight
我不确定你试图达到什么目的,但是如果你有多个用户控件,你希望它们彼此对话并共享数据或调用某种事件。在不增加控件之间的内聚的情况下,完成此操作的一个好方法是使用消息传递系统发布并注册消息。这将允许您触发事件并在不同控件之间传递数据。有几个框架支持这一点。
你可能想看看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;
}