在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>
我只是添加文本框文本属性模式为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>