C# 在另一个窗口中执行操作时,listview不更新

C# 在另一个窗口中执行操作时,listview不更新,c#,wpf,C#,Wpf,我的Listview不会更新在其他窗口中发送数据的位置,而是在相同窗口中发送数据时更新。这是我的主窗口 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void button1_Click(object sender, RoutedEventArgs e) { CNotes.w

我的Listview不会更新在其他窗口中发送数据的位置,而是在相同窗口中发送数据时更新。这是我的主窗口

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        CNotes.writeLn("Jacob");
    }

    private void button2_Click(object sender, RoutedEventArgs e)
    {
        Window1 spl = new Window1();
        spl.Show();
    }
}
}

这是我的窗口列表视图

public partial class Window1 : Window
    {
        ObservableCollection<Person> people = new ObservableCollection<Person();
        public Window1()
        {
            InitializeComponent();
            people.Add(new Person() { Name = "John" });
            people.Add(new Person() { Name = "Jack" });

            // Data bind to the listview,
            this.lvRcvd.ItemsSource = people;
        }

        public void writeLn(string s)
        {
            this.people.Add(new Person { Name = s });
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            this.people.Add(new Person { Name = "Jacob" });
        }
    }

    public class Person { public string Name { get; set; } }

    static public class CNotes
    {
        static Window1 fm = new Window1();
        static public void writeLn(string s)
        {
            fm.writeLn(s);
        }

    }
公共部分类窗口1:窗口
{
ObservableCollection人员=新ObservableCollection更改此项:

static public void writeLn(string s)
    {
        fm.writeLn(s);
    }
为此:

static public void writeLn(string s)
    {
        Window1 fm = Application.OpenForms.OfType<Window1>().Take(1).SingleOrDefault();
        if (fm != null)
           fm.writeLn(s);
    }
static public void writeLn(字符串s)
{
Window1 fm=Application.OpenForms.OfType().Take(1.SingleOrDefault();
如果(fm!=null)
书面形式(s);
}
您要做的是创建窗体Window1的新实例,而不是访问要更新的打开的Window1

编辑:


由于这是一个WPF,请尝试使用
Application.Current
。更具体地说,
Application.Current.Windows

我在winform@willy David JR中使用WPF,Application.Openform(很高兴提供帮助:)