绑定到父数据上下文
本文关键字:上下文 数据 绑定 | 更新日期: 2023-09-27 18:37:18
我的代码隐藏如下
this.DataContext = MainWindowViewModel.Instance;
我尝试过的 xaml
<ComboBox ItemsSource="{Binding Vendors,
RelativeSource={RelativeSource AncestorType=Window}}"
Visibility="{Binding RepairHasNoVendors,
Converter={StaticResource VisibilityOfBool}}"/>
我的错误
Error: 40 : BindingExpression path error: 'Vendors' property not found on 'object'
''MainWindow' (Name='')'. BindingExpression:Path=Vendors; DataItem='MainWindow'
(Name='')
据我了解,我已经在代码隐藏中设置了我的窗口数据上下文,我认为通过将 relaticesource 指定为窗口,我可以访问这些属性?
我的视图模型具有该属性
public ObservableCollection<VendorViewModel> Vendors
我还想补充一点,我的组合框位于 datagridtemplatecolumn 内,其数据上下文设置正确,我能够访问这些属性,例如我的 datagrid 具有 datagridtextcolumn 和绑定工作
<DataGridTextColumn Header="Repair Id" Width="Auto" Binding="{Binding RepairID}"/>
您需要
绑定到窗口的属性datacontext
而不是window
<ComboBox ItemsSource="{Binding Path=DataContext.Vendors,
RelativeSource={RelativeSource AncestorType=Window}}"
Visibility="{Binding RepairHasNoVendors,
Converter={StaticResource VisibilityOfBool}}" />