如何在 WPF 中的 DataTemplate 中查找 TextBox 的值?

How to find value of TextBox inside DataTemplate in WPF?

我在 DataTemplate 中获取 TextBox 的值时遇到了一些问题。 我的ListView绑定了一个ObservableCollection<lstProduse>,数据模板里面的TextBlock绑定了lstProduseDenumire属性。 TextBox 的文本是手写输入的。

我想要实现的是遍历所有项目以获取TextBoxTextBlock的文本。

<ListView x:Name="lstReceta" Grid.Row="1" Grid.Column="0" ItemsSource="{Binding lstProduse}" SelectionChanged="lstReceta_SelectionChanged">
   <ListView.ItemContainerStyle>
      <Style TargetType="ListViewItem">
         <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
      </Style>
   </ListView.ItemContainerStyle>
   <ListView.ItemTemplate>
      <DataTemplate>
         <Grid>
            <Grid.ColumnDefinitions>
               <ColumnDefinition Width="3*"/>
               <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <TextBlock Grid.Column="0" HorizontalAlignment="Center" Text="{Binding Denumire}"/>
            <TextBox Grid.Column="1" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Padding="10,0"/>
         </Grid>
      </DataTemplate>
   </ListView.ItemTemplate>
</ListView>

您有一个带有 ObservableCollection 的视图模型。您已经将 TextBlockText 属性 绑定到您的项目类型上的 Denumire 属性。只需创建另一个 属性 例如InputText 属性 的 TextBox 在你的项目类型中也绑定到它。

<TextBox Grid.Column="1" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Padding="10,0" Text="{Binding Input}"/>

然后您可以简单地在您的视图模型中遍历您的 lstProduse 集合,因为您的项目的属性是通过 TextBlockTextBox 中的绑定同步的。