0

我正在尝试使用模板解决列表框中项目之间的通信问题。假设我有模板:

<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>

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

4

2 回答 2

0

你为什么不尝试像这样绑定

<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>
于 2013-11-09T13:05:18.047 回答
0

可以说我明白了。但它的一种有问题的。它的 Windows 8 商店应用程序,我想我不能像在 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;

一个问题又造成了两个问题:

  • 当我更改我的模板时,一切都会被破坏。
  • 可以说我想达到特定的特定TextBoxAItem我不知道如何达到它。我的意思是我有IncomingMessage方法我需要找到我的联系人的项目并将他的消息发送给他的TextBoxA。
于 2013-11-10T11:31:21.543 回答