在windows phone 7 c#的列表框中绑定文本框

本文关键字:绑定 文本 列表 windows phone | 更新日期: 2023-09-27 18:12:58

我在列表框数据模板中有一个tetbox。这个文本框是可编辑的。如何在选择更改事件中获取文本框文本值。如果我试图找到文本使用可视化树它返回什么。请帮助

ListBoxItem item = this.lstProds.SelectedItem as ListBoxItem;
PhoneTextBox targetBox = FindFirstElementInVisualTree<PhoneTextBox>(item);
string a = targetBox.Text;
private T FindFirstElementInVisualTree<T>(DependencyObject parentElement)   where T : DependencyObject
{
        var count = VisualTreeHelper.GetChildrenCount(parentElement);
        if (count == 0)
            return null;
        for (int i = 0; i < count; i++)
        {
            var child = VisualTreeHelper.GetChild(parentElement, i);
            if (child != null && child is T)
            {
                return (T)child;
            }
            else
            {
                var result = FindFirstElementInVisualTree<T>(child);
                if (result != null)
                    return result;
            }
        }
        return null;
}
XAML:

  <ListBox Name="lstProds" Margin="0,59,0,0" Background="{x:Null}" Foreground="Black" SelectionChanged="lstProds_SelectionChanged">
     <ListBox.ItemTemplate>
        <DataTemplate>
          <Grid Height="auto">
            <Border BorderBrush="Black" BorderThickness="1" Margin="68,63,-58,-13">
             <toolkit:PhoneTextBox Name="txtQuantity" Hint="Quantity"  Width="180" Text="{Binding Quantity}"></toolkit:PhoneTextBox>
            </Border>
           </Grid>
          </DataTemplate>
         </ListBox.ItemTemplate>
   </ListBox>

在windows phone 7 c#的列表框中绑定文本框

我只是添加文本框文本属性模式为Two way。在选择更改事件中,将所选项作为类获取。var context = (lstProds. var)SelectedItem作为ModelClass);

  <ListBox Name="lstProds" Margin="0,59,0,0" Background="{x:Null}" Foreground="Black" SelectionChanged="lstProds_SelectionChanged">
            <ListBox.ItemTemplate>
                <DataTemplate>
<Grid>
<Border BorderBrush="Black" BorderThickness="1" Margin="91,69,0,9" HorizontalAlignment="Left" Width="145">
                        <toolkit:PhoneTextBox Name="txtQuantity" Hint="Quantity" Width="144" Text="{Binding Quantity,Mode=TwoWay}"></toolkit:PhoneTextBox>
                </Border>    
</Grid>
            </Border>
            </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>