如何获取元素WPF的子元素

时间:2012-06-19 06:57:41

标签: c# wpf

我有一个包含Image和TextBlock的stackpanel。一旦用户执行双击,我就会发起一个事件。( PS - 我正在添加StackPanel及其子项(如果重要,则以编程方式显示Image和TextBlock)。

现在,我需要从stackpanel中获取TextBlock元素,我知道我应该使用DataBinding来完成它,但我是WPF的初学者,并且在网络上找不到任何关于它的例子。我会很高兴得到解释,非常感谢你!

(我刚刚学习了DataBinding)。

2 个答案:

答案 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();
       }
   }

有很多方法可以完成上述所有操作