更改ListView上的TextBlock的ColumnSpan

本文关键字:ColumnSpan TextBlock 上的 ListView 更改 | 更新日期: 2023-09-27 17:50:45

我正在构建一个UWP应用程序,我有一个问题与我的ListView。我想从我的ListView中的TextBlock更改ColumnSpan。

                    <ListView Grid.Row="1" BorderBrush="#0062AD" BorderThickness="1" ItemsSource="{Binding BusRoutes}" x:Name="Routes1" SelectionMode="None"   IsItemClickEnabled="False"  Padding="0 10 0 0">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <Grid Width="400">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*"/>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="*"/>
                                </Grid.RowDefinitions>
                                <TextBlock x:Name="startingPoint" Grid.Row="0" Grid.Column="0"  Padding="0 10 0 10" TextAlignment="Center" HorizontalAlignment="Center" Text="{Binding hours}"/>
                                <TextBlock TextAlignment="Center"  Grid.Row="0" Grid.Column="1"  Padding="0 10 0 10" x:Name="endingPoint" HorizontalAlignment="Center" Text="{Binding hours2}" />
                            </Grid>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>

我的意思是,我想设置为名称为startingPoint ColumnSpan = 2的TextBlox,并使名称为endingPoint的TextBlock以编程方式崩溃。这可能吗?

更改ListView上的TextBlock的ColumnSpan

是的,你可以通过使用:

endingPoint.Visibility = Visibility.Collapsed; //to make it invisible
Grid.SetColumnSpan(startingPoint, 2); //to change it the 2 column span

希望能有所帮助。

我认为你面临的问题是找到控件而不是列表视图。既然你已经完成了绑定。最好的方法是为可见性和列跨度创建视图模型属性,并通过编程方式进行设置。将属性绑定到xaml。因为你已经有了绑定,它应该很容易做到