我有一个包含Image和TextBlock的stackpanel。一旦用户执行双击,我就会发起一个事件。( PS - 我正在添加StackPanel及其子项(如果重要,则以编程方式显示Image和TextBlock)。
现在,我需要从stackpanel中获取TextBlock元素,我知道我应该使用DataBinding来完成它,但我是WPF的初学者,并且在网络上找不到任何关于它的例子。我会很高兴得到解释,非常感谢你!
(我刚刚学习了DataBinding)。
答案 0 :(得分:19)
获取特定类型的第一个子元素(例如TextBlock)的一种简单方法是:
var textBlock = panel.Children.OfType<TextBlock>().FirstOrDefault();
如果没有,请获取第一个TextBlock或null
。
答案 1 :(得分:0)
您需要将DataBind TextBlock
Text
(?)元素添加到您的类中 - 就像这样:
在XAML中
<TextBlock x:Name="MyTextBlock"
Text={Binding ShowThis, Mode=OneWay} />
课堂上的:
public class MyDataContextClass
{
private string showThis = string.Enpty;
public string ShowThis
{
get {return showThis;}
set
{
showThis = value;
if (PropertyChanged != null)
PropertyChanged(....);
}
}
}
你必须要DataBing Xaml才能上课。 (可能在构造函数中?)
public class MyXamlWindow
{
public MyXamlWindow()
{
this.DataContext = new MyDataContextClass();
}
}
有很多方法可以完成上述所有操作