来自另一个 View/Class 的 WPF 更新列表框

WPF Update List Box From Another View/Class

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

基本上,我想将一个项目添加到我的列表框中。列表框是在我的 LiveView xaml/class 中创建的,但我想在我的 SettingsView Class.

中按下按钮时更新列表框的内容

设置视图class:

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

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

}

实时查看class:

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");
    }
}

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

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

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