我有一个包含图像和文本块的堆栈面板。一旦用户执行双击,我就会引发一个事件。(PS - 我正在添加 StackPanel 及其子项(如果重要,则以编程方式添加 Image 和 TextBlock)。
现在,我需要从堆栈面板中获取 TextBlock 元素,我知道我应该使用 DataBinding 来完成,但我是 WPF 的初学者,并且真的没有在网络上找到任何关于它的示例。很高兴得到解释,非常感谢!
(我不久前了解了 DataBinding)。
A simple way of getting the first child element of a certain type (e.g. TextBlock) is this:
var textBlock = panel.Children.OfType<TextBlock>().FirstOrDefault();
You either get the first TextBlock or null
if there isn't any.
您需要将 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();
}
}
有很多方法可以做到以上所有