C# 如何绑定到窗口';谁指挥?
我在一个名为“RefreshCommand”(ICommand类型)的用户控件上有一个依赖项属性,我想将该属性绑定到主窗口中的命令 如果我用代码写这个,它会工作C# 如何绑定到窗口';谁指挥?,c#,wpf,xaml,data-binding,dependency-properties,C#,Wpf,Xaml,Data Binding,Dependency Properties,我在一个名为“RefreshCommand”(ICommand类型)的用户控件上有一个依赖项属性,我想将该属性绑定到主窗口中的命令 如果我用代码写这个,它会工作 MainToolbar.RefreshCommand = (ICommand)this.CommandBindings[0].Command; 。。但是我如何用XAML来表达呢 另外,我想通过命令名而不是索引来引用该命令 谢谢,您可以通过以下方式将XAML绑定到其他XAML元素: 元素名称: RefreshCommand=“{Bi
MainToolbar.RefreshCommand = (ICommand)this.CommandBindings[0].Command;
。。但是我如何用XAML来表达呢
另外,我想通过命令名而不是索引来引用该命令
谢谢,您可以通过以下方式将XAML绑定到其他XAML元素:
- 元素名称:
RefreshCommand=“{Binding ElementName=window,Path=CommandBindings[0]。Command}”
- 论“你自己”的性质
RefreshCommand=“{Binding RelativeSource={x:Static RelativeSource.Self},Path=CommandBindings[0].Command}”
- 沿着树向上排列,带有AncestorType
RefreshCommand=“{Binding Path=CommandBindings[0]。命令,RelativeSource={RelativeSource antestortype={x:Type Window}}}”
如果工具栏是窗口中的子工具栏,我想第三个应该可以正常工作。我建议这样做 3类
MainWindow.xaml (Window)
MainViewModel.cs (Class)
UserControl.xaml (UserControl)
将主窗口的数据上下文设置为ViewModel。除非您显式更改,否则UserControl将继承此数据上下文。在用户控件/主窗口上设置控件,以绑定到主视图模型上的中继命令
这将为您提供所需的上下文,而无需硬编码索引(xxx.[0]),并且仍然保持一定程度的分离 有几件事。1-如何确定要查找的命令始终是列表中的第一个命令?2-你到底想在这里实现什么?1)这就是问题所在,我真的需要一种方法来命名它。2) 我试图实现的是在主窗口和用户控件之间共享命令的方法。因此,我的用户控件上有一个属性,我想将主windows属性绑定到该属性中。应该已经指定-是否有方法通过其名称访问该命令?我还没有尝试过,但是您可以在XAML中指定命令绑定,并为它们指定一个名称,以便使用elementname引用?