<ControlTemplate TargetType="{x:Type ListBoxItem}">
<StackPanel>
<StackPanel Margin="0,0,28,0" Orientation="Horizontal" Visibility="{Binding IsEditable,Converter={StaticResource BooleanToVisibilityConverter}}">
<TextBlock Foreground="Gray" Text="{Binding DateCreated,Converter={StaticResource DateTimeConverter}}" FontFamily="/Assets/Fonts/Berthold Akzidenz Grotesk BE Regular.ttf" FontSize="16"/>
<TextBlock Text=":" Foreground="Gray"/>
<TextBlock Width="20"/>
<TextBox ScrollViewer.HorizontalScrollBarVisibility="Disabled" BorderThickness="0" Name="TrainerNoteText" Text="{Binding TrainerNote}" FontFamily="/Assets/Fonts/Berthold Akzidenz Grotesk BE Regular.ttf" Foreground="Black" FontSize="16" TextWrapping="Wrap" KeyUp="EditTrainerNote" Width="400"/>
</StackPanel>
</StackPanel>
</ControlTemplate>
以上控制模板位于列表视图中。里面的文本框是可编辑的。因此,当用户按下回车键时,我需要获取与之关联的当前对象。怎么做?
答案 0 :(得分:0)
您可以在ListView级别收听KeyDown RoutedEvent。
http://msdn.microsoft.com/en-us/library/system.windows.input.keyboard.keydown.aspx
它的附加事件及其处理程序可以放在VisualTree中的任何位置。
以下是一个例子:
<StackPanel TextBox.KeyDown="OnKeyDownHandler">
<TextBox Width="300" Height="20"/>
</StackPanel>
这是处理程序:
public void OnKeyDownHandler(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
TextBox tbx = (TextBox)sender;
tbx.....
}
}
答案 1 :(得分:0)
您知道,您确实应该在ListBox.ItemTemplate
property和不 DataTemplate
属性中定义的ListBoxItem.Template
中定义您的商品的样子。基于链接页面的示例:
<ListBox Width="400" Margin="10" ItemsSource="{Binding YourCollectionProperty}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=TaskName}" />
<TextBlock Text="{Binding Path=Description}"/>
<TextBlock Text="{Binding Path=Priority}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
当Binding
ListBox.Items
属性的集合属性时,DataTemplate
内的所有UI元素都可以访问集合中类型的属性。在此示例中,填充YourCollectionProperty
集合的类型中包含TaskName
,Description
和Priority
属性。您可以将这些属性替换为 集合属性中的类型。
如果您设置属性以实现INotifyPropertyChanged
界面(或使用DependencyProperties
,那么UI元素中的任何更新都将自动在数据对象中更新查看模型/代码后面。因此,无需添加KeyDown
或KeyUp
处理程序。有关详细信息,请阅读MSDN上的Data Binding Overview页面。