首页 > 解决方案 > 如何在 Listview 中找到 TextBlock 的值?

问题描述

一些函数会改变TextBlock. ListView我想TextBlock在这些函数结束时访问值。我该怎么做?

列表视图代码:

<ListView BorderThickness="0" x:Name="OrderList">
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel/>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <ListView.ItemContainerStyle>
        <Style TargetType="{x:Type ListViewItem}">
            <Setter Property="Background" Value="Transparent" />
            <Setter Property="BorderBrush" Value="Transparent"/>
            <Setter Property="VerticalContentAlignment" Value="Center"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListViewItem}">
                        <Grid Background="{TemplateBinding Background}">
                            <Border BorderBrush="{StaticResource MenuluxRedBrush}" BorderThickness="0,0,0,1" Height="30">
                                <local:OrderPopUpItem/>
                            </Border>
                            <GridViewRowPresenter Grid.RowSpan="2"
                                                  Margin="{TemplateBinding Padding}"
                                                  HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                                  VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                                  SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsEnabled" Value="false">
                                <Setter Property="Foreground" 
                                        Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ListView.ItemContainerStyle>
</ListView>

OrderPopUpItem.xaml 代码:

<Grid Background="White">
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>

        <TextBlock Text="{Binding productName}"
                   VerticalAlignment="Center"
                   Margin="15,0,0,0"
                   FontSize="20"/>

        <Grid Grid.Column="1">
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>

            <Image Source="/Images/PopUp/icon_minus_red.png"
                   MouseLeftButtonUp="azalt"
                   Name="minusIcon"
                   Height="30"/>

            <TextBlock Text="0"
                       Grid.Column="1"
                       Name="amountText"
                       VerticalAlignment="Center"
                       HorizontalAlignment="Center"
                       FontSize="20"/>

            <Image Source="/Images/PopUp/icon_plus_red.png"
                   MouseLeftButtonUp="arttir"
                   Name="plusIcon"
                   Grid.Column="2"
                   Height="30"/>
        </Grid>

标签: c#wpfxaml

解决方案


如果我正确理解了您的问题,您可以使用 C# 在代码后面实现这一点。您应该将以下代码添加到您的源代码中。

//Get ListViewItem    
ListViewItem item = (ListViewItem)OrderList.Items.GetItemAt(SatirIndex);

//Get Content from item (use if you want read items value)
string deger = item.content;
//Set items content (use if you want set items value)
item.content = amountText.Text;

推荐阅读