WPF 用户控件未显示在网格中
WPF User Control doesn't show up in grid
我试图将 WPF 中的 UserControl 添加到网格中,但是当我尝试通过 MyGrid.Children.Add(UserControl) 添加时它没有显示。所以我试着显示我的网格的孩子数量,在添加用户控件后它说 1。 (MyGrid.Children.Clear() 也不起作用。清除网格后它说还剩下 0 个孩子,但在我编译我的程序时仍然有一些 UiElements。)
这个问题只出现在1个函数中。在另一个函数(相同的class)中,我可以轻松地将孩子添加到同一个网格(myGrid)。
我的代码:
private void AddDateOnClick(object sender, MouseButtonEventArgs e)
{
MyGrid.Children.Clear();
UserControlAddDate ucad = new UserControlAddDate();
MyGrid.Children.Add(ucad);
MessageBox.Show(MyGrid.Children.Count.ToString()); //Only to test if there are some childs
}
当我尝试在其他函数(相同 class)中清除此网格时,它会清除网格。只有在这个函数中清除是一个问题。我不明白为什么???
这个 UserControlAddDate 是什么?也许它没有被初始化。这就是为什么它没有被添加到网格中的原因。
在那个地方尝试向网格添加一个文本框并检查它是否正常工作。如果它能正常工作,那就是你的代码有问题。
正如 Ed Plunkett 所说,请尝试使用模板和数据绑定。这是使用 WPF 的最佳方式。
无论如何都要试试这个。
private void AddDateOnClick(object sender, MouseButtonEventArgs e)
{
MyGrid.Children.Clear();
TextBox ucad = new TextBox();
ucad.Text = “TEST”;
MyGrid.Children.Add(ucad);
MessageBox.Show(MyGrid.Children.Count.ToString()); //Only to test if there are some childs
}
我试图将 WPF 中的 UserControl 添加到网格中,但是当我尝试通过 MyGrid.Children.Add(UserControl) 添加时它没有显示。所以我试着显示我的网格的孩子数量,在添加用户控件后它说 1。 (MyGrid.Children.Clear() 也不起作用。清除网格后它说还剩下 0 个孩子,但在我编译我的程序时仍然有一些 UiElements。)
这个问题只出现在1个函数中。在另一个函数(相同的class)中,我可以轻松地将孩子添加到同一个网格(myGrid)。
我的代码:
private void AddDateOnClick(object sender, MouseButtonEventArgs e)
{
MyGrid.Children.Clear();
UserControlAddDate ucad = new UserControlAddDate();
MyGrid.Children.Add(ucad);
MessageBox.Show(MyGrid.Children.Count.ToString()); //Only to test if there are some childs
}
当我尝试在其他函数(相同 class)中清除此网格时,它会清除网格。只有在这个函数中清除是一个问题。我不明白为什么???
这个 UserControlAddDate 是什么?也许它没有被初始化。这就是为什么它没有被添加到网格中的原因。 在那个地方尝试向网格添加一个文本框并检查它是否正常工作。如果它能正常工作,那就是你的代码有问题。
正如 Ed Plunkett 所说,请尝试使用模板和数据绑定。这是使用 WPF 的最佳方式。
无论如何都要试试这个。
private void AddDateOnClick(object sender, MouseButtonEventArgs e)
{
MyGrid.Children.Clear();
TextBox ucad = new TextBox();
ucad.Text = “TEST”;
MyGrid.Children.Add(ucad);
MessageBox.Show(MyGrid.Children.Count.ToString()); //Only to test if there are some childs
}