gpt4 book ai didi

c# - 使用 C# 循环使用 Wpf tabitem 控件?

转载 作者:太空宇宙 更新时间:2023-11-03 19:10:39 24 4
gpt4 key购买 nike

您好,我熟悉 Windows 窗体,现在我要启动 WPF,在 Windows 中,我使用以下递归方法重置控件

 internal  void clrCntrls(Control cntrl)
{
if (cntrl.GetType() == typeof(TextBox))
{
TextBox cntrl = (TextBox)cntrl;
cntrl.Text = "";
}
else if (cntrl.GetType() == typeof(ComboBox))
{
ComboBox cntrl = (ComboBox)cntrl;
cntrl.SelectedIndex = -1;
}
else
{
foreach (Control subCntrl in _cntrl.Controls)
{
clrCntrls(subCntrl);
}
}

它在 Windows 中对我来说工作正常,但我在 WPF 中如何做也一样。我对此有点困惑。请帮忙。

最佳答案

I am famliar with windows forms, Now i am going to start WPF

非常好。欢迎来到光明面。

你需要做的第一件事就是完全忘记你在 winforms 中学到的一切,理解并拥抱 The WPF Mentality

in winforms i reset the controls with the following recursive method

在 WPF 中,您不会“重置控件”,您实际上并没有对控件做太多事情,仅仅是因为 UI is Not Data

您要做的是声明性地将您的 UI 转换为相关的数据模型ViewModel,然后对其进行操作。

因此,假设定义一些数据,如:

public class Person
{
public string FirstName {get;set;}

public string LastName {get;set;}
}

然后定义(IN XAML)一段 UI 来显示该数据:

  <StackPanel>
<TextBlock Text="{Binding LastName}"/>
<TextBlock Text="{Binding FirstName}"/>
</StackPanel>

为了“清除”这些文本框,您要做的是将它们的 DataBind 分配给您的数据类的一个新的、清晰的实例:

DataContext = new Person();

我建议您开始阅读 WPF 心态链接。

祝你好运。

关于c# - 使用 C# 循环使用 Wpf tabitem 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com