首页 > 解决方案 > 如何访问 UWP 控件数据模板内的页面数据上下文?

问题描述

我目前有一个包含信息视图模型的页面视图模型。信息视图模型在页面视图模型中正确初始化,我可以按预期将对象绑定到信息视图模型中的控件。但是,当 UWP 应用程序进入编辑模式时,我遇到了问题。我根据全局编辑状态在信息视图模型中切换某些控件及其部件的可见性。

我创建了一个名为 IsEditing 的依赖属性,它是一个布尔值,它正确地将值从页面视图模型传递到信息视图模型。

IsEditing 属性在数据模板中不受支持。例如,

<toolkitControls:DataGrid>
   <toolkitControls:DataGrid.Columns>
      <toolkitControls:DataGridTemplateColumn x:Name="MyDataGrid" Header="AGE">
                                    <toolkitControls:DataGridTemplateColumn.CellTemplate>
                                        <DataTemplate>
                                            <StackPanel
                                                HorizontalAlignment="Center"
                                                VerticalAlignment="Center"
                                                Orientation="Horizontal">
                                                <TextBlock
                                                    HorizontalAlignment="Center"
                                                    VerticalAlignment="Center"
                                                    Foreground="{StaticResource Blue}"
                                                    Style="{StaticResource MyTextBlockStyle}"
                                                    Text="{Binding User.Age}"
                                                    Visibility="{Binding Path=IsEditing, ElementName=Page, Converter={StaticResource CollapseConverter}}" />

注意:页面有名字 x:Name="Page"

我还尝试了以下也不起作用的绑定:

Visibility="{Binding Path=DataContext.IsEditing, ElementName=Page, Converter={StaticResource CollapseConverter}}"
Visibility="{Binding Path=DataContext.IsEditing, ElementName=MyDataGrid, Converter={StaticResource CollapseConverter}}"

有没有其他人设法在他们的 UWP 应用程序中实现这个功能?

标签: uwpbindingdatacontext

解决方案


推荐阅读