访问 WPF 中 ListBox 中 DataTemplate 中的控件
我有包含 DataTemplate 的列表框。 我无法访问放置在数据模板中的控件。 我怎样才能访问这个控件?
<ListBox Height="344" Name="listBoxMedicine" Width="881">
<ListBox.ItemTemplate>
<DataTemplate >
<TextBlock Name="myTextBlock">
</Datatemplate>
</ListBox.ItemTemplate>
</ListBox>
感谢您的关注。
I have listbox which have DataTemplate.
I can not access controls which placed in the datatemplate.
How can I access to this controls?
<ListBox Height="344" Name="listBoxMedicine" Width="881">
<ListBox.ItemTemplate>
<DataTemplate >
<TextBlock Name="myTextBlock">
</Datatemplate>
</ListBox.ItemTemplate>
</ListBox>
Thank you for your attention.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您仍然想在代码隐藏中访问控件,您可以执行以下操作:
1)在某处添加新的辅助方法:
2)像这样使用它:
但我仍然强烈建议重构您的数据模型。
If you still want access your controls in codebehaind, you can do something like this:
1) Add a new helper method somewhere:
2) Use it like this:
But I still strongly recomend to refactor your data model.
根据评论,我建议您创建一个视图模型,它只提供可见性的属性,例如:
然后您可以绑定该可见性,然后在代码中设置它以影响视图:
Based on the comments i would suggest you create a view-model which simply provides a property for the visbility, e.g.:
You can then bind that visibility and later set it in code to affect the view:
我使用这种方法从 ItemsControl 获取 FrameworkElement,也可以使用 ListBox、ListView,因为它们都继承自 ItemsControl。
I'm using this approach to get FrameworkElement from ItemsControl, also will work with ListBox, ListView because they all inherit from ItemsControl.