如何解决如何在其他用户控件中按名称查找元素?
我有一个用户控件(MainView
)和另一个用户控件(GridView
):
<local:MyGridView x:Name="GridView"/>
在我的MainView
中,有一个按钮:
<Button Command="{Binding TestCommand}"
CommandParameter="{Binding ElementName=DataGrid}"
Content="Test"/>
在我的GridView
中,我有一个数据网格,希望以CommanParameter
的形式发送。
如果GridView
代码位于MainView
代码中,则此语法将起作用。我应该改变什么?
我尝试了{Binding ElementName=GridView.DataGrid}
-没有成功。
解决方法
非常简单。
<local:MyGridView x:Name="**GridView**"/>
<Button Command="{Binding TestCommand}"
CommandParameter="{Binding ElementName=**GridView**}"
Content="Test"/>
您应该将ElementName从DataGrid更改为GridView。
,您不能使用ElementName
直接引用在另一个控件或名称范围中定义的元素。
您可以做的是向MyGridView.xaml.cs
添加一个属性,该属性公开DataGrid
控件:
public DataGrid DataGrid => dataGrid1;
然后可以绑定到元素的此属性:
<Button Command="{Binding TestCommand}"
CommandParameter="{Binding Path=DataGrid,ElementName=GridView}"
Content="Test"/>
更好的方法是使用共享的DataContext
(视图模型)并将两个控件都绑定到该控件的属性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。