C# 列表框项与模板之间的XAML通信?

C# 列表框项与模板之间的XAML通信?,c#,xaml,templates,C#,Xaml,Templates,我试图用模板解决列表框中项目之间的通信问题。假设我有一个模板: <DataTemplate x:Key="Template"> <StackPanel HorizontalAlignment="Stretch"> <TextBox Name="A" FontSize="17" Margin="5,5,5,1"></TextBox> <TextBox Name="B" FontSize="15" Marg

我试图用模板解决列表框中项目之间的通信问题。假设我有一个模板:

<DataTemplate x:Key="Template">
    <StackPanel HorizontalAlignment="Stretch">
        <TextBox Name="A" FontSize="17" Margin="5,5,5,1"></TextBox>
        <TextBox Name="B" FontSize="15" Margin="5,0,5,1"></TextBox>
    </StackPanel>
</DataTemplate>


当我在
Textbox
B上键入数据并按ENTER键时,我调用将键入的文本发送到
Textbox
A的方法。问题是我如何为listbox项中的模板项创建这样的键控方法,如果我将拥有多个项怎么办?

为什么不尝试这样绑定

<DataTemplate x:Key="Template">
    <StackPanel HorizontalAlignment="Stretch">
        <TextBox Name="A" Text="{Binding Text, ElementName=B}" FontSize="17" Margin="5,5,5,1" />
        <TextBox Name="B" FontSize="15" Margin="5,0,5,1" />
    </StackPanel>
</DataTemplate>

假设我拿到了。但这有点问题。它是Windows8商店应用程序,我想我不能像WPF那样处理这个问题。我就是这样做的:

                    var parent = ((TextBox)sender).Parent;
                var child = VisualTreeHelper.GetChild(parent, 1);
                TextBox text = (TextBox)child;
                text.Text += Client.Settings.Account + ": " + ((TextBox)sender).Text + "\n";
                ((TextBox)sender).Text = string.Empty;
这一个问题造成了另外两个问题:

  • 当我更改模板时,所有内容都将被破坏
  • 假设我想进入特定
    项中的特定
    文本框
    A
    我不知道如何进入。我的意思是我有
    IncomingMessage
    方法,我需要找到我的联系人项目,并将他的信息放入他的
    文本框
    A

它必须像聊天信息一样。当我输入B并发送它时,B将从所有文本中清除。你可以在文本框中添加事件。我将按键时的事件添加到我的文本框B。我可以发送消息并清除窗口,但是将数据发送到文本框A如何?我不能叫它,因为它不存在于上下文中。我不能像B:((文本框)发送者)那样称呼它。有什么想法吗?当引发b事件时,使用父属性获取Stackpanel。然后用FindVisualChildren方法得到一个文本框(谷歌搜索FindVisualChildren)。我不能通过它。它的Windows8Store应用程序,我认为有些方法和对象与WPF中的不同。我做了“视觉特效助手”。我可以用GetChild(parent,index)方法找到我的“TextBox”,但现在我想当我更改模板时,一切都会被破坏。另外,假设我想进入特定
项目中的特定
文本框
A
我不知道如何进入该框。我的意思是我有
IncomingMessage
方法,在这里我需要找到作为我联系人的项目,并将他的消息放在他的
TextBox
A。在这里找到了解决方案:我用find-genderant方法创建了一个helper类,让我获得控制权。谢谢大家的帮助。