当前位置: 首页 > 知识库问答 >
问题:

绑定到页面的数据上下文

袁何平
2023-03-14

我发现需要绑定到PageDataContext,设置如下:

<d:Page.DataContext>
    <designTime:PayeesPageDesignViewModel />
</d:Page.DataContext>

在设计时。但是,我需要从具有不同数据上下文的子控件绑定到它:

<GridView x:Name="PayeesGridView"
          Margin="0,30,0,0"
          IsItemClickEnabled="True"
          ItemsSource="{Binding Payees}"
          SelectionChanged="PayeesGridView_OnSelectionChanged">

由于 ItemsSource 是为 GridView 设置的,因此我的 GridViewItems 的数据上下文设置为收款人集合中的各个收款人对象我的视图模型有一个属性,我需要从转换器中的视图引用该属性来确定项目的可见性。

我可以根据收款人对象的属性设置可见性,如下所示:

<Border Width="250"
        Height="250"
        Background="Gray"
        Opacity="0.85"
        Visibility="{Binding Path=IsOpen,
                     Converter={StaticResource AccountStatusToVisibilityConverter}}">

但是我真正需要绑定到的是PageDataContext设置. ShowInactive属性。有没有办法从子控件中获取该上下文?我使用的是WinRT,所以我没有FindAncestor绑定源的好处。

编辑

正如评论中所建议的,我试图将绑定修改成这样:

Visibility="{Binding Path=DataContext.Settings.ShowInactivePayees, ElementName=PageName,
             Converter={StaticResource AccountStatusToVisibilityConverter}}">

但当我在AccountStatusToVisibilityConverter中设置断点时,永远无法到达转换器。

共有1个答案

慕容星晖
2023-03-14

如何在网格视图中分配项模板?如果不是修改模板的内容,而是更改了整个模板怎么办?像这个伪xaml...

<Page.Resources>
    <DataTemplate x:Key="ActiveTemplate"></DataTemplate>
    <DataTemplate x:Key="InactiveTemplate"></DataTemplate>
    <local:IsActiveToItemTemplateConverter x:Key="IsActiveToTemplate"
        ActiveTemplate="{StaticResource ActiveTemplate}"
        InactiveTemplate="{StaticResource InactiveTemplate}"
        />
</Page.Resources>

<GridView
    ItemsSoucre="{Binding Payees}"
    ItemTemplate="{Binding Settings.ShowInactive, Converter={StaticResource IsActiveToTemplate}}"
    IsItemClickEnabled="{Binding Settings.ShowInactive, Converter={StaticResource BooleanNot}}"
    />
 类似资料:
  • 我遇到了一个很奇怪的问题。我尝试将属性绑定到DataContext,但它不起作用。这是我正在做的事情(在橱窗里)。资源部分): 在代码的其他地方,我像这样设置数据上下文: 我没有收到任何错误,但绑定没有发生。所以我添加了一个调试转换器,看看我是否可以弄清楚发生了什么: 我在转换器中设置了一个断点,传递的值为 null。确定事情不正常,我在设置 DataContext 的行上设置了一个断点。它首先被

  • 如何将 itemcount 绑定到我的数据上下文以计算每个组中的所有项目,然后将其显示在标题中 我的项目绑定到的 视图模型 数据上下文 它之前用这个工作过 System. Windows. Data错误:4:找不到与引用绑定的源 'RelativeSource FindAncestor, AncestorType='System. Windows. Control. UserControl', A

  • 我有一个用户控件,其数据上下文设置为名为 EmployeeList_VM 的视图模型。然后,我在该用户控件中有一个 ContentControl,该控件将其 datacontect 设置为视图模型的公共属性 (EmployeeSelection)。ContentControl 的数据上下文与同一用户控件中列表框的选定项绑定相同。 我希望ContentControl中的combobox(属于名为Em

  • 视频地址:http://pan.baidu.com/s/1hqlBoC8 目录 1、引言:《外卖》案例的代码不完整吗??? 2、概述 2.1、WeX5页面组成 2.2、数据绑定 3、规则表达式 3.1、数据规则 3.2、环境变量 3.3、上下文对象 3.4、ref、val和label的区别 4、绑定表达式 4.1、概述 4.2、绑定表达式的环境变量和上下文对象 4.3、特殊的ref绑定(bind-

  • 视频地址:http://pan.baidu.com/s/1hqlBoC8 目录 1、引言:《外卖》案例的代码不完整吗??? 2、概述 2.1、WeX5页面组成 2.2、数据绑定 3、规则表达式 3.1、数据规则 3.2、环境变量 3.3、上下文对象 3.4、ref、val和label的区别 4、绑定表达式 4.1、概述 4.2、绑定表达式的环境变量和上下文对象 4.3、特殊的ref绑定(bind-

  • 如何将MVVM值绑定到dropdownlist?下面的输入元素运行良好