Silverlight - 在 XAML 中而不是在构造函数中设置 DataContext?

2024-01-09

如何在 XAML 中而不是在构造函数中设置 Grid 上的 DataContext?

以下是我在构造函数中执行此操作的方法(LayoutRoot 是 XAML 中定义的 XAML 网格):

this.LayoutRoot.DataContext = this.HPVM;

我更愿意在 XAML 中正确执行此操作,但我不知道如何在 XAML 中引用 HPVM 对象。 HPVM 是 USerControl 类的公共属性。

正如上面所列,它工作得很好,但同样,我只想知道如何在 XAML 中设置 UserControl 类的属性,而不是总是必须在代码中执行此操作。

这是所有相关代码:

  <UserControl x:Class="SilverlightApplication1.SLHolePattern" x:Name="HolePatternsControl"
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:sys="clr-namespace:System;assembly=mscorlib"    
    xmlns:controls="clr-namespace:Microsoft.Windows.Controls;assembly=Microsoft.Windows.Controls"
    xmlns:local="clr-namespace:SilverlightApplication1"    
    xmlns:GeoPatterns="clr-namespace:GeoPatterns"
    Height="700">


    <UserControl.Resources>
    ...

这是我的构造函数,其中当前设置了 DataContext:

namespace SilverlightApplication1
{
    public partial class SLHolePattern : UserControl, INotifyPropertyChanged
    {
        public HolePatternsViewModel HPVM;

        public SLHolePattern()
        {
            InitializeComponent();

            this.HPVM=new HolePatternsViewModel();
            this.LayoutRoot.DataContext = this.HPVM;
            ...more code here
        }

一切正常,但我只想了解如何在 XAML 中设置 DataContext,而不是在代码中。


克里斯给出的答案效果很好。 我已经测试过并且它对我有用。 您可以在 XAML 中实例化您的类(在 UserControl.Resources 内)并 然后将数据上下文绑定到静态资源。

遵循代码:


<UserControl ...>
    <UserControl.Resources>
       <myNS:MyClass x:Name="TheContext" x:Key="TheContext"></myNS:MyClass>
    </UserControl.Resources>
    <Grid x:Name="LayoutRoot" Background="White" DataContext="{StaticResource TheContext}" >
        <TextBlock Text="{Binding Path=Field1}">
        </TextBlock>
    </Grid>
</UserControl>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Silverlight - 在 XAML 中而不是在构造函数中设置 DataContext? 的相关文章

随机推荐

  • GLSL:如何执行类似 switch 的语句

    我想根据传递到着色器的数据动态调用缓动 所以用伪代码来说 var easing easings easingId var value easing point 我想知道在 GLSL 中完成此任务的最佳方法 我可以以某种方式使用 switch
  • VSCode:git staging 时触发organizeImports

    我喜欢 VSCode 中的自动组织功能 但让它在每次保存时都执行此操作给我带来了一些麻烦 editor codeActionsOnSave source organizeImports true 当我暂存导入时 是否可以设置一些 git h
  • 将 ObjectAid 安装到 eclipse LUNA 时出现错误

    我有 eclipse LUNA 我正在尝试安装 ObjectAid 来构建 UML 图 当我尝试安装它时 出现以下错误 An error occurred while collecting items to be installed ses
  • React Native:完成拖动后获取元素的实际 x,y 坐标(react-native-gesture-handler)

    我正在使用这个库 https github com software mansion react native gesture handler https github com software mansion react native g
  • 有没有一种正则语言来表示正则表达式?

    具体来说 我注意到正则表达式的语言本身并不是正则的 因此 我无法使用正则表达式来解析给定的正则表达式 我需要使用解析器 因为正则表达式本身的语言是上下文无关的 有没有什么方法可以用可以使用正则表达式解析结果字符串的方式来表示正则表达式 注意
  • 快速简单的图像哈希算法

    我需要一个 最好是简单且快速的 图像哈希算法 哈希值用于查找表 而不用于加密 一些图像是 计算机图形 即纯色填充矩形 光栅化文本等 而也有 摄影 图像 包含丰富的色谱 大部分平滑 具有合理的噪声幅度 我还希望哈希算法能够应用于特定的图像部分
  • 使用JFrame作为自定义输入框

    我正在开发一个基于 java swing 的应用程序 其中我有两个JFrames A 这是主窗口 并且B 这被称为A 我需要做的是 在A call B 获取用户输入B并将该输入传递给A以某种方式 然后处理它 我尝试过的一切都失败了 据我所知
  • MySQL 连接器 NO_CIPHERS_AVAILABLE 错误

    我正在使用 MySQL 连接器为我的简单 python 应用程序创建连接 但是每次运行它时 它都会失败并返回以下错误 2055 Lost connection to MySQL server at databaseHost system e
  • ResourceManager 包 - 包未正确加载

    我在 VS2015 和 cordova 项目中遇到问题 当天早些时候 我的项目进展顺利 但是 我将一个项目移动到一个新文件夹 现在 VS2015 无法正常工作 它正在运行 但不知何故 webessentials 被卸载 我的 gulpfil
  • PowerShell :: Microsoft.Azure.Commands.Sql.Database.Model.AzureSqlDatabaseModel.DatabaseName [重复]

    这个问题在这里已经有答案了 我编写了一个脚本 允许我查询整个 Azure 数据库公园 ErrorActionPreference SilentlyContinue Connect to Azure azureAccount Connect
  • 为什么 runBlocking 不会阻塞调用线程

    我试图理解 kotlin 中的 runBlocking println before runBlocking Thread currentThread name runBlocking but this expression blocks
  • Avro在消费端通过kafka自定义解码UUID

    我编写了一个类来将 UUID 类型的对象自定义编码为要在 kafka 和 avro 之间传输的字节 为了使用这个类 我放了一个 AvroEncode using UUIDAsBytesEncoding class 在我的目标对象中的 uui
  • BLOC 状态更改后有状态小部件未重建

    我无法理解为什么我的 Stateful 小部件在重建后没有更新状态 我有一个有状态的小部件 负责每秒递减一个计数器 因此它收到一个初始值 我将此初始值传递给状态并开始递减它 它还具有一个按钮 当按下该按钮时 会向我的块发送一个事件 该块会使
  • NoClassDefFoundError(初始化失败) - Websphere 和 IBM MQ

    我在部署到 Websphere 并与 IBM MQ 交互的基于 Spring 的 Web 应用程序上遇到问题 一切都很好 直到我尝试一些故障测试 当 Web 应用程序启动并运行时 我停止 IBM MQ 然后 我调用 Web 应用程序发送 J
  • 如何使用 Java 获取 Linux 中的总磁盘空间?

    我能够获得可用磁盘空间 我如何获得总磁盘空间 我的代码是 import java io IOException import org apache commons io FileSystemUtils public class DiskSp
  • 此 linq 查询是否在 for-each 循环的每次迭代上运行?

    在关于 SO 的另一个问题中 我用如下代码回答 并得到一条评论 即 LINQ 查询可能在 for each 的每次迭代中进行评估 真的吗 我知道 LINQ 查询在其项目被评估之前不会执行 因此这种迭代结果的方式似乎可以使其在每次迭代中运行
  • SQL / PHP PDO 选择随机行

    我希望能够随机选择一名未参加考试的学生 N 并回显姓名和主题 我怎样才能实现这个目标 query db gt prepare SELECT name FROM exams WHERE faced array array N query gt
  • 使用 GSON 解析 JSON

    我在使用 GSON 时遇到了一些问题 主要是从 JSON 反序列化为 POJO 我有以下 JSON events event id 628374485 title Developing for the Windows Phone event
  • 无法绑定 GridView 列中的项目列表

    我正在构建一个应用程序 向用户显示系列比赛的实时结果 我设置数据结构如下 Countries gt Leagues gt Matches特别是在 ViewModel 中 我创建了一个可观察的国家 地区集合 如下所示 private Obse
  • Silverlight - 在 XAML 中而不是在构造函数中设置 DataContext?

    如何在 XAML 中而不是在构造函数中设置 Grid 上的 DataContext 以下是我在构造函数中执行此操作的方法 LayoutRoot 是 XAML 中定义的 XAML 网格 this LayoutRoot DataContext