来自另一个 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 进行了修复,这使得整个过程变得更加容易。
对 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 进行了修复,这使得整个过程变得更加容易。