【发布时间】:2012-06-19 06:57:40
【问题描述】:
我有一个包含图像和文本块的堆栈面板。一旦用户执行双击,我就会引发一个事件。(P.S - 我正在添加 StackPanel 及其子项(如果重要,则以编程方式添加 Image 和 TextBlock)。
现在,我需要从堆栈面板中获取 TextBlock 元素,我知道我应该使用 DataBinding 来完成,但我是 WPF 的初学者,并且真的没有在网络上找到任何关于它的示例。很高兴得到解释,非常感谢!
(我前段时间了解了 DataBinding)。
【问题讨论】:
-
为什么要以编程方式添加 StackPanel 及其子项?很有可能您可以纯粹在 Xaml 中获得所需的内容,并将点击绑定到命令,或者简单地按名称引用 TextBlock。
-
@MichaelGraczyk 我正在从数据库中获取我显示的数据(例如 - stackpanel)。
-
您几乎不需要从代码中添加 UI 元素。如果 UI 在运行时未发生变化,则不应从代码中添加任何 UI 元素。您可以使用 x:Name 指令为元素命名,然后从代码隐藏中通过该名称访问。
-
@MichaelGraczyk 我正在开发的程序是一个聊天程序,问题是我从数据库中获取了他的联系人,我怎么知道我应该在 xaml 中添加多少元素?
-
如果您对数据绑定感到满意,那么您应该阅读有关绑定到集合的 msdn 部分:msdn.microsoft.com/en-us/library/…。以编程方式添加元素将程序逻辑与表示紧密耦合。它使代码更难阅读,更难修改,更难在视觉上改变。如果您将 UI 和代码分开,您可以使应用程序看起来很漂亮,并且也可以工作,而不必同时担心两者。此外,在 Xaml(或 CSS 或其他)中布置视图比在代码中更容易。