gpt4 book ai didi

WPF:无法使用 FindName 访问 ComboBox 的 TextBox

转载 作者:行者123 更新时间:2023-12-04 19:36:15 25 4
gpt4 key购买 nike

我看到我可以访问 ComboBox 的模板化部分( TextBoxPopUpButton )通过 FindName方法。
TextBox应该可以使用 cb.FindName("PART_EditableTextBox") 访问,然而,这总是返回 null为了我。

根据 melya 的建议,我尝试使用 cb.Template.FindName("PART_EditableTextBox", cb);相反 - 这适用于一个简单的测试应用程序,但不适用于我自己的。

不同之处或许在于我试图在 ComboBox 之前执行此操作。已加载或初始化(我正在开发一个 Attached PropertyTextBoxes/ComboBoxes 添加功能)。
cb.ItemTemplate显示为 null .

不幸的是,尝试 cb.ApplyTemplate() 的明显解决方案返回 false并且什么都不做。

有什么我可以做的吗?

最佳答案

我知道我在这里参加聚会迟到了,但我想我会回答,以防其他人像我一样结束这里。

就我而言,我正在处理自定义 ComboBox 控件。我按照其他建议在 Loaded 事件中处理这个问题,但是(像 OP 一样),一直得到一个空返回。最终,我发现 Loaded 为时过早。我的控件显示在一个选项卡上,该选项卡最初不可见。

相反,覆盖 OnApplyTemplate 更适合我,因为这是在 Loaded 事件之后(当模板可用时)。我使用的代码如下:

public override void OnApplyTemplate()
{
base.OnApplyTemplate();
var textBox = Template.FindName("PART_EditableTextBox", this) as TextBox;
}

关于WPF:无法使用 FindName 访问 ComboBox 的 TextBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34266689/

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