C# 如何从堆栈面板中的代码隐藏控件进行访问?
这是WPF中的C语言: 我知道我可以像这样向堆栈面板添加项目:myStackPanel.Children.Addnew按钮; 或类似这样的列表框:myListBox.Items.Addnew按钮; 当然,我可以事先编辑控件,然后再添加它们,比如先设置属性,然后再添加它们 但是,当控件位于堆栈布局中且代码隐藏时,如何选择它呢。例如,是否有类似的方法:myStackPanel.Childern.CONTROL_AT_INDEX[n]?然后,我如何编辑它,更像是更改标签的内容(如果是标签)或事件处理程序(如果是按钮) 此外,我想为列表框以及解决方案,请。 我只是不知道一旦这些控件进入内部,如何访问它们。将x:Name分配给该控件,并在代码中使用它 这对于模板和样式中的控件自然无效。将x:Name指定给该控件,并在代码中使用它C# 如何从堆栈面板中的代码隐藏控件进行访问?,c#,wpf,listbox,controls,C#,Wpf,Listbox,Controls,这是WPF中的C语言: 我知道我可以像这样向堆栈面板添加项目:myStackPanel.Children.Addnew按钮; 或类似这样的列表框:myListBox.Items.Addnew按钮; 当然,我可以事先编辑控件,然后再添加它们,比如先设置属性,然后再添加它们 但是,当控件位于堆栈布局中且代码隐藏时,如何选择它呢。例如,是否有类似的方法:myStackPanel.Childern.CONTROL_AT_INDEX[n]?然后,我如何编辑它,更像是更改标签的内容(如果是标签)或事件处理程
这对于模板和样式中存在的控件自然无效。像已经发布的Tigran一样,可以在XAML中为控件指定属性:
<ListBox x:Name="myListBox"
// more properties here...
/>
但是,我强烈建议您交替使用MVVM方法来消除代码隐藏文件。这减少了业务逻辑与UI的耦合。使用MVVM模式是Microsoft推荐的使用WPF的方法,因为它使使用许多WPF特性变得非常简单
在这个线程中可以找到一个很好的教程资源,例如:像已经发布的Tigran一样,可以在XAML中为控件分配一个属性:
<ListBox x:Name="myListBox"
// more properties here...
/>
但是,我强烈建议您交替使用MVVM方法来消除代码隐藏文件。这减少了业务逻辑与UI的耦合。使用MVVM模式是Microsoft推荐的使用WPF的方法,因为它使使用许多WPF特性变得非常简单
在这个SO线程中可以找到一个很好的教程资源,例如:这是我的解决方案
var child = (from c in theCanvas.Children
where "someId".Equals(c.Tag)
select c).First();
这是我的解决办法
var child = (from c in theCanvas.Children
where "someId".Equals(c.Tag)
select c).First();
嗯,问题是,我要在运行时添加这些控件,这样我就不能向它们添加x:name了,可以吗?我需要一种不需要xaml partah帮助就可以访问这些控件的方法,如果您需要在运行时访问这些控件,只需保留您创建的对象,或者给它们命名并从父控件按名称获取它们。是的,但这太容易了,我想与这些控件进行更多的交互,使用名称实在太简单了:P难道没有办法从层次结构树中找到我想要的控件吗?你可以利用它。但同样,它并不总是适用于模板和样式。好吧,问题是,我要在运行时添加这些控件,这样我就不能向它们添加x:name了,对吗?我需要一种不需要xaml partah帮助就可以访问这些控件的方法,如果您需要在运行时访问这些控件,只需保留您创建的对象,或者给它们命名并从父控件按名称获取它们。是的,但这太容易了,我想与这些控件进行更多的交互,使用名称实在太简单了:P难道没有办法从层次结构树中找到我想要的控件吗?你可以利用它。但同样,它并不总是适用于模板和样式。