buaa21/summer2020

c#重构mainwindow,新建mainwindow后的数据独立问题

Closed this issue · 3 comments

如题,我在public partial class MainWindow : Window中声明了一个数据集
public class SettingData
{
public static int IsOpen = 1;
public static int IsTop = 0;
public static int IsDeleted = 0;
public static DateTime CreateTime;
public static string SavePath = null;
public static int ThemeColor = 1;
public static DateTime LatestDate;
}
然后又重构了mainwindow函数,
public MainWindow()
public MainWindow(DataRow dataRow)
public MainWindow(string SavePath )
发现在其中一个窗口中修改参数时会影响其他窗口中的参数,请问如何实现窗口间的参数独立?

crclz commented

建议搜索static关键词的意思。大概就是全局的效果。

解决方案:

  1. 去掉static:
public class SettingData
{
public int IsOpen = 1;
public int IsTop = 0;
public int IsDeleted = 0;
public DateTime CreateTime;
public string SavePath = null;
public int ThemeColor = 1;
public DateTime LatestDate;
}
  1. 让每一个Window都拥有独立的SettingData成员。(为每一Window创建独立的SettingData成员)

那怎么创建独立的SettingData成员呢(在一个mainwindowclass里?

crclz commented
class XXXX
{
  public SettingData Setting = new SettingData();
  ...
}

这是面向对象的基础知识