小编Jas*_*ahl的帖子

WPF:从DataTemplate中的Listview中的textblock设置ListViewItem

我有一个带有ListView的Windows Phone 8.1项目,其后面的c#代码填充了它的itemssource.它工作,但我最终在单行文本块之间有空格.我已经尝试在文本块上设置高度,它位于列表视图内部.我尝试设置一个ItemContainerStyle,将高度绑定到文本块的高度,但它不起作用.
如果我将TextBlock的文本设置为Actual Height绑定,我得到0,所以我一定做错了.我很确定它与ListViewItems的高度有关,但由于它们是从代码填充的,我无法弄清楚如何让它们做我想做的事情.我也尝试切换到列表的ItemsControl但它似乎没有滚动和工作.这是Listview的XAML:

<ListView x:Name="TheList" IsHoldingEnabled="True"
                      ItemsSource="{Binding items}"
                      Loaded="WhenListViewBaseLoaded"
                      ContinuumNavigationTransitionInfo.ExitElementContainer="True"
                      IsItemClickEnabled="True">
            <ListView.ItemContainerStyle>
                <Style TargetType="ListViewItem">
                    <Setter Property="Height" Value="{Binding ElementName=txtBibleText, Path=ActualHeight}"/>
                </Style>
            </ListView.ItemContainerStyle>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <Grid x:Name="ItemTemplateGrid" Holding="ListViewItem_Holding" Background="Blue">
                        <FlyoutBase.AttachedFlyout>
                            <MenuFlyout>
                                <MenuFlyoutItem Text="Share"
                                                Click="ShareFlyoutItem_Click" />
                                <MenuFlyoutItem Text="Add to Sharing"
                                                Click="AddSharingFlyoutItem_Click" />
                            </MenuFlyout>
                        </FlyoutBase.AttachedFlyout>
                        <Grid x:Name="gridText">
                            <TextBlock x:Name="txtBibleText" 
                                   FontSize="{Binding TheFontSize}"
                                   Grid.Column="1"
                                   VerticalAlignment="Top"
                                   HorizontalAlignment="Left"
                                   TextWrapping="Wrap"
                                   Margin="0,0,0,0" FontFamily="Global User Interface">
                            <Run Text="{Binding VerseNumber}"/>
                            <Run Text="{Binding BibleText}"/>
                            </TextBlock>
                        </Grid>
                    </Grid>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
Run Code Online (Sandbox Code Playgroud)

填充ListView的代码背后:

XDocument loadedData = XDocument.Load(TranlationFilePath);
            var data = from query in …
Run Code Online (Sandbox Code Playgroud)

c# xaml listview datatemplate windows-phone-8.1

5
推荐指数
1
解决办法
1326
查看次数

标签 统计

c# ×1

datatemplate ×1

listview ×1

windows-phone-8.1 ×1

xaml ×1