如何解决如何在WPF C#中获取/清除动态嵌套的UserControl
我正在寻找一种嵌套,获取,清除和定义用户控件(UC)的方法。 如果您有指向以下问题的真正好的描述或教程的链接,我将很高兴。
首先,用两张小图片更好地了解项目。 对于语法错误,尤其是对类别错误的写作感到抱歉。
希望图像能清晰地显示出来,就像我想要一个窗口一样,在这里我可以添加一个类别UC,可以根据需要扩展任意数量。在每个类别中,您还可以添加无限控制UC。
我可以使用下面的代码填充所需的窗口,但是我缺少一种单独调用每个UC的方法。
我正在寻找:
- 如果通过命名来识别UC,则是有效的/最佳方法
- 一种单独调用每个UC的方法
- 清除特定的UC
- 以及您愿意提供的所有其他技巧;)
我认为答案确实很明显,但我只是不知道自己在寻找什么。
在此先感谢每个答案:)
代码:
主窗口CS
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void btn_Activate_UCKategory_Click(object sender,RoutedEventArgs e)
{
UC_Kategory UC = new UC_Kategory();
//UC.Name = "Some Unique Name... Probably the Kategory name (will be saved in json)... Same goes for Content";
// How to best refer to a instance of Kategory or Content? Over Name?
UC.UC_Kategory_Header.Text = UC_Main_txt_Kategory.Text;
UC_Main_txt_Kategory.Text = "Write Here";
UCKategory_Wrapper.Children.Add(UC);
}
}
UC类别CSp
public partial class UC_Kategory : UserControl
{
public UC_Kategory()
{
InitializeComponent();
}
private void btn_Delete_UCKategory_Click(object sender,RoutedEventArgs e)
{
// How to Clear a specific Kategory
MainWindow mainWindow = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();
mainWindow.UCKategory_Wrapper.Children.Clear(); // Can only clear all Kategory UCs...
}
private void btn_Create_UCContent_Click(object sender,RoutedEventArgs e)
{
UC_Content UC = new UC_Content();
UC.UC_Content_Header.Text = UC_Kategory_txt_Kategory.Text;
UC_Kategory_txt_Kategory.Text = "Write Here";
UCContent_StackPanel.Children.Add(UC);
}
}
主窗口xaml
<Grid Margin="10">
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Name of Kategory: " Grid.Column="0" FontWeight="Bold"/>
<TextBox Text="Write here" Grid.Column="1" x:Name="UC_Main_txt_Kategory"/>
<Button x:Name="btn_Create_UCKategory" Content="Create Kategory" Grid.Column="2" Click="btn_Activate_UCKategory_Click"/>
</Grid>
<WrapPanel x:Name="UCKategory_Wrapper"/>
</StackPanel>
</Grid>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。