9

我有一个包含图像和文本块的堆栈面板。一旦用户执行双击,我就会引发一个事件。(PS - 我正在添加 StackPanel 及其子项(如果重要,则以编程方式添加 Image 和 TextBlock)。

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

(我不久前了解了 DataBinding)。

4

2 回答 2

22

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.

于 2012-06-19T07:15:39.213 回答
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();
       }
   }

很多方法可以做到以上所有

于 2012-06-19T07:12:15.503 回答