【问题标题】:WPF Update List Box From Another View/ClassWPF 从另一个视图/类更新列表框
【发布时间】:2021-09-20 12:18:16
【问题描述】:

对 WPF 非常陌生。我正在尝试实现一些相对简单但被证明很困难的事情。

基本上,我想将一个项目添加到我的列表框中。列表框是在我的 LiveView xaml/类中创建的,但我想在我的 SettingsView 类中按下按钮时更新列表框的内容。

SettingsView 类:

public partial class SettingsView : UserControl
   {
       public SettingsView()
           {
               InitializeComponent();
           }

       private void StartButton_Click(object sender, RoutedEventArgs e)
           {
               var myLiveView = new LiveView();
               myLiveView.updateListBox();
           }

}

LiveView 类:

public partial class LiveView : UserControl
{
    public LiveView()
    {
        InitializeComponent();
    }

    public void updateListBox()
    {
        CommentListBox.Items.Add("Another item");
    }
}

如果我执行以下操作,则代码可以正常工作,并且项目会在启动时成功添加到我的列表中。

public partial class LiveView : UserControl
{
    public LiveView()
    {
        InitializeComponent();
        CommentListBox.Items.Add("Another item");
    }
}

为什么我只能在 Liveview class() 中更新 UI?解决这个问题的正确方法是什么?如何从另一个类/视图更新我的 ListBox?我正在创建的 LiveView 实例似乎实际上并没有做任何事情。任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 你这里没有使用 mvvm。您的 LiveView 用户控件未更新的原因是因为您正在创建一个不属于可视化树的新控件: var myLiveView = new LiveView();我建议使用 mvvm 执行此操作(在 youtube 或大量教程网站上有很多基本教程),但您也可以在 xaml 中为您的用户控件指定一个名称,并在其中使用 ElementName="YourName 声明它" 然后使用后面代码中的 YourName.updateListBox() 方法。
  • MVVM 看起来非常复杂。你能提供任何有用的链接吗?很多教程似乎使用静态数据,我需要我的 ListBox 是动态的

标签: c# wpf mvvm listboxitem


【解决方案1】:

当您创建一个新的用户控件实例时,它现在是空的,要处理此问题,请检查两个用户控件中的委托和事件,以及父子导航。

【讨论】:

  • 您能详细说明一下吗?答案不是很清楚
  • 请在此处查看如何在考试中使用代表和活动,要求类似。docs.microsoft.com/en-us/answers/questions/341832/…
  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
  • Rajesh,这看起来太复杂了!我要做的就是从另一个类中的按钮中添加一个列表框项。问题是如果不创建新实例(什么都不做),我无法直接访问类属性。我很难理解我如何需要 50 行代码才能做到这一点?
【解决方案2】:

使用 MVVM 进行了修复,这使得整个过程变得更加容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多