uwp - 如何访问 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 应用程序中实现这个功能?
解决方案
推荐阅读
- coldfusion - ColdFusion cffeed/cfoutput
- pyspark - 在pyspark中分组和透视而不聚合
- c# - 由于版本原因,无法使用 WooCommerceNET C# 与 Woocommerce 连接
- android - 查询设备通话记录时未知通话类型
- spring - 如何优雅地关闭 Spring Batch Job?(当前正在运行的作业应该完成)
- vue.js - 如何从VueJs中的数组中获取单个值
- html - 是什么决定了它的高度
元素? - html - 如何更改css样式的边框圆形项目符号?
- jenkins - Testcafe - 测试场景失败
- typescript - 与 Webpack 捆绑时出现循环引用错误