//问题描述:我需要用单例模式打开窗口,同时窗口中datagrid绑定了一个随着我操作不停增加的数据,这样我随着我操作我多次打开这个窗口列表都会变化。但是目前问题是我第一次打开窗口啥样,后面数据更新,但是窗口再打开一直是第一次的样子,该怎么办?
//补充:我把单例模式换成普通的模式,就是不断新建窗口,确实能更新到,但是我需要单例模式保证只有一个窗口,是否是return _instance;那里需要换个写法
//窗口.xaml.cs
public partial class HideWindow : Window
{
ObservableCollection<datagridres> datagridreslist = new ObservableCollection<datagridres>();
public HideWindow()
{
for (int y=0;y< IdSave.Timerec.Count();y++)
{
datagridreslist.Add(new datagridres() { id=y+1,time = IdSave.Timerec[y] });
}
InitializeComponent();
hidewindow.ItemsSource = datagridreslist;
}
private static HideWindow _instance;
public static HideWindow Instance
{
get
{
if (ReferenceEquals(_instance, null))
{
_instance = new HideWindow();
}
return _instance;
}
}
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
this.Hide();
e.Cancel = true;
}
}
}
//触发打开wpf的cs
sing Autodesk.Revit.UI;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Hide
{
[Transaction(TransactionMode.Manual)]
public class HideManager : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
HideWindow.Instance.Show();
return Result.Succeeded;
}
}
}