【问题标题】:How to use a xaml object in another class如何在另一个类中使用 xaml 对象
【发布时间】:2012-07-24 21:32:13
【问题描述】:

我有一个包含标签的 xaml 类。我想从一个不同的类更改此标签的内容。 例如,我有一个带有 mainwindow.xaml 的类 mainwindow.xaml.cs,我想从 newclass.cs 处理 mainwindow.xaml 的标签。 我该怎么做??

编辑:我在网格中有这个标签,我想更改另一个类的内容:

<Label Content="" Panel.ZIndex="1" FontWeight="SemiBold" FontSize="16px" Name="lb1" Margin="0,0,0,0" VerticalAlignment="Bottom" Height="30" HorizontalAlignment="Right" Width="250" HorizontalContentAlignment="Right" VerticalContentAlignment="Top"/>

【问题讨论】:

    标签: c# .net wpf xaml


    【解决方案1】:

    我会做这样的事情,我不确定这是否是最合乎逻辑的事情,但它对我有用。

    在你的 newclass.cs 中:

    Class Newclass
    {
         MainWindow main;
    
    
         public Newclass(MainWindow win)
         {
             main = win;
             main.label.content = "";
         }
    }
    

    然后在你的 mainwindow.xaml.cs 中:

    Newclass class = new Newclass(this);
    

    【讨论】:

      【解决方案2】:

      数据绑定和 MVVM 将是最优雅的解决方案。 但是您可以简单地使用代码隐藏。 为标签命名<Label x:Name="myLabel">,以便您可以在代码中使用该名称访问它,就像任何其他变量一样。 然后,您可以将此变量传递给您的 newclass.cs 并在那里更改其属性。

      【讨论】:

      • 它对我有帮助,但我不知道我是否以相同的方式执行此操作,在主窗口类中我创建了一个新的 Label STATIC 变量并使其与 myLabel(来自 xaml)相等,所以我在我的新类中使用静态变量
      • @user1005633 不需要创建变量的静态,而是将其作为参数传递给不同类中存在的方法。如果您更改此元素的任何属性,也会在 UI 中反映出来。
      【解决方案3】:

      您可以先使用绑定 - 甚至更好地绑定 MVVM 模式和视图模型。

      但是,当你提出问题时,你应该发布一些代码

      【讨论】:

        猜你喜欢
        • 2017-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-17
        • 1970-01-01
        • 2020-12-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多