wpf:绑定到另一个xaml文件中的控件

本文关键字:文件 控件 xaml 另一个 绑定 wpf | 更新日期: 2023-09-27 17:59:33

我有一个main.xaml文件。在main.xaml文件中,它引用了另一个xaml文件中的列表框。使用视图调用:LayoutViewList

在main.xaml文件中,有一个按钮。只有当选择了列表框时,该按钮才会启用。看起来ElementName=view.LayoutViewList.LayoutListBox不起作用。非常感谢

Button IsEnabled="{Binding ElementName=view:LayoutViewList.LayoutListBox, Path=SelectedItems.Count}" 

绑定错误:

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'ElementName=view:LayoutViewList.LayoutListBox'. BindingExpression:Path=SelectedItems.Count; DataItem=null; target element is 'Button' (Name=''); target property is 'IsEnabled' (type 'Boolean')
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'ElementName=view:LayoutViewList.LayoutListBox'. BindingExpression:Path=SelectedIndex; DataItem=null; target element is 'Button' (Name=''); target property is 'NoTarget' (type 'Object')

wpf:绑定到另一个xaml文件中的控件

如果带有Binding的视图是MainView文件的子级,则需要使用RelativeSource Binding。试试这个:
<Button IsEnabled="{Binding DataContext.SelectedItems.Count, RelativeSource={
    RelativeSource AncestorType={x:Type YourPrefix:MainView}}" />

Binding是指由对象中的SelectedItems属性暴露的对象的Count属性,该对象被设置为名为MainViewUserControlWindowDataContext