如何访问列表视图列中的文本框

本文关键字:文本 视图 列表 何访问 访问 | 更新日期: 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'