如何访问列表视图列中的文本框
本文关键字:文本 视图 列表 何访问 访问 | 更新日期: 2023-09-27 18:15:52
我有一个这样的列表视图。
<ListView x:Name="Source_List"
ItemsSource="{Binding Lines}"
IsSynchronizedWithCurrentItem="True"
SelectionChanged="Source_List_SelectionChanged">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment"
Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn Header="Line"
Width="50"
DisplayMemberBinding="{Binding LineNumber}" />
<GridViewColumn Header="Start Time"
Width="100"
DisplayMemberBinding="{Binding StartTime , Converter={StaticResource LineTimeToString}}" />
<GridViewColumn Header="End Time"
Width="100"
DisplayMemberBinding="{Binding EndTime ,Converter={StaticResource LineTimeToString}}" />
<GridViewColumn Header="Text"
Width="500">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=Context ,Mode=TwoWay}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Original Text"
DisplayMemberBinding="{Binding Context ,Mode=OneTime}" />
</GridView>
</ListView.View>
</ListView>
我想访问所选项内的文本框作为文本框。(在代码后面)我该怎么做呢?
我用了beth massi的这篇文章。你可以访问文本框UI元素(如果你的textblock被点击)
TextBlock content = ((FrameworkElement)e.OriginalSource) as TextBlock;
else如果你的texblock在一个网格内,使用
Grid c = ((FrameworkElement)e.OriginalSource) as Grid;
并搜索grid(c)子元素
因为您正在使用IsSynchronizedWithCurrentItem="True"
,您应该能够访问列表'Lines'
的当前项。你的文本框是与上下文绑定的所以我假设在视图模型中你可以调用'Lines.CurrentItem.Context'