使用标准xaml工具调用事件触发器时,是否可以更改其他对象的DataContext的值?日Thnx。
答案 0 :(得分:1)
我不确定您要实现的目标,但如果您有多个用户控件,您希望它们相互通信并共享数据或调用某种事件。在不增加控件之间的内聚力的情况下,这样做的一种良好而干净的方法是使用消息传递系统来发布和注册消息。这将允许您触发事件并在不同控件之间传递数据。有一些框架支持这一点。
您可能需要查看Prism EventAggregator。 Prism库可以从microsoft网站下载。
另一个框架是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;
}