所以我有两个Windows。 第一个窗口使用文本框,组合框等存储所有数据。 在第二个窗口中,我希望用户输入一些信息,并基于该信息,我想在主窗口中更改某些内容。
我改变了 公共局部类Window2:Window 至 公共局部类Window2:MainWindow
但是它仍然不起作用。
public partial class MainWindow : Window
{
int Languagetoken = 1;
public MainWindow()
{
InitializeComponent();
DateTextBox.Text = DateTime.Now.ToShortDateString();
}
...
public partial class Window2 : Window
{
public Window2()
{
InitializeComponent();
}
{
不知道该怎么做。上面的代码不在同一xaml中,它们只是显示两者的初始化。
答案 0 :(得分:0)
默认情况下,文本框和所有其他控件都由private
成员变量表示,这些变量在表示您表单的类中表示,因此您将无法访问它。
要从外部访问它,可以在第一个窗口内添加属性...
public string DataText
{
get
{
return DataTextBox.Text;
}
set
{
DataTextBox.Text = value;
}
}
或者您可以将控件的访问级别更改为internal
或public
,以便您可以通过引用窗口来访问它。
答案 1 :(得分:0)
有几种方法可以解决此问题,但在您的情况下,最简单的方法可能是在创建MaxNLocator
时引用其In [36]: import numpy as np
...: import matplotlib.pyplot as plt
In [37]: from matplotlib.ticker import MaxNLocator
In [38]: fig, ax = plt.subplots(figsize=(10,4))
In [39]: ax.grid()
In [40]: ax.xaxis.set_major_locator(MaxNLocator(min_n_ticks=15))
In [41]: x = np.linspace(0, 1, 51)
In [42]: y = x*(1-x)
In [43]: plt.plot(x, y)
Out[43]: [<matplotlib.lines.Line2D at 0x7f9eab409e10>]
来注入它。
Window2
Window2:
MainWindow
然后您可以使用Window2 win = new Window2(this);
引用访问public partial class Window2 : Window
{
private readonly MainWindow _mainWindow;
public Window2(MainWindow mainWindow)
{
_mainWindow = mainWindow;
InitializeComponent();
}
...
}
中MainWindow
的任何内部成员或公共成员,例如:
Window2