我有一个ListView
带边界ItemsSource
和一个GridViewColumns
来显示给定项目属性的。以下是重要部分的片段:
<ListView Name="listView1" ItemsSource="{Binding Path=listItemCollection}" DataContext="{Binding ListItem}">
<ListView.View>
<GridView x:Name="gridViewMain">
<GridViewColumn x:Name="listViewItemNumberColumn" Width="50">
<GridViewColumnHeader>#</GridViewColumnHeader>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock x:Name="idTextBlock" KeyboardNavigation.IsTabStop="False" HorizontalAlignment="Center" Text="{Binding Path=Id}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="listViewItemNameColumn" Width="500">
<GridViewColumnHeader>Name</GridViewColumnHeader>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox x:Name="nameTextBox" TextChanged="nameTextBox_TextChanged" Text="{Binding Path=ItemName, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
...
我希望能够专注于用户选择的特定字段/文本框ListViewItem
。我可以ListViewItem
使用以下代码从给定索引中找到:
listView1.ItemContainerGenerator.ContainerFromIndex(i);
到目前为止一切都很好。直到我想真正访问ListViewItem
. 它没有返回我期望的一组控件,而是ListViewItem.Content
返回我的自定义类ListItem
。这是该类的外观片段:
public class ListItem : INotifyPropertyChanged {
public event PropertyChangedEventHandler PropertyChanged;
public TextBlock idTextBlock;
public GridView gridViewMain;
public bool Selected { get; set; }
public string ItemName { get; set; }
我完全迷失了如何将注意力集中在一个nameTextBox
文本框控件上ListViewItem.
是否有可能以某种方式将 和 等控件链接nameTextBox
到idTextBlock
我的自定义ListItem
类?