2016-01-07 26 views
2

如何在我的listview控件中包裝或以其他方式顯示長字符串。我一直在包裝或在我的綁定ListView控件中顯示長文本不成功。我的xaml頁面基本上是一個帶有ItemTemplate的BOUND FlipView,它包含兩個綁定的textBlocks和一個綁定的ListView。我可以讓TextBlocks包裝而不是listviewitems。它看起來像是一件簡單的事情,但它卻沒有我。UWP XAML如何在綁定ListView中包裝文本

這裏是我的XAML的一部分:

<Page.Resources> 
    <DataTemplate x:DataType="data:MydataObject" x:Key="MydataObjectTemplate"> 
     <StackPanel HorizontalAlignment="Stretch" Height="596" Width="982"> 
      <TextBlock Name="txtDataObjectId" Text="{Binding dataObject.Id}" Visibility="Collapsed" TextWrapping="WrapWholeWords"/> 
      <TextBlock FontSize="24" Text="{x:Bind dataObject}" HorizontalAlignment="Center" TextWrapping="WrapWholeWords"/> 
      <ListView ItemsSource ="{x:Bind theObjectDetails, Mode=OneWay }" 
         HorizontalAlignment="Stretch" 
         BorderBrush="Black" 
         BorderThickness="1"/> 
     </StackPanel> 
    </DataTemplate> 
</Page.Resources> 

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <StackPanel HorizontalAlignment="Stretch"> 
     <ComboBox x:Name="cboCategory" Header="Category" SelectionChanged="cboCategory_SelectionChanged" /> 
     <FlipView x:Name="FlipView1" 
       ItemsSource="{x:Bind MydataObjects, Mode=OneWay }" 
       ItemTemplate="{StaticResource MydataObjectTemplate}" 
       BorderBrush="Black" 
       BorderThickness="1"/> 
    </StackPanel> 
</Grid> 

//c# 
public class mydataObject 
{ 
    public int Id { get; set; } 
    public dataObject theObject { get; set; } 
    public List<dataObjectDetails> theObjectDetails { get; set; } 

    public override string ToString() 
    { 
     return this.theObject.Subject; 
    } 
} 

public class dataObjectDetails 
{ 
    public int Id { get; set; } 
    public int dodId{ get; set; } 
    public string bodyText { get; set; } 

    public override string ToString() 
    { 
     return bodyText ; 
    } 
} 
+0

我應該指出的Windows 10 UWP ListView,因爲它可能會有所作爲... –

+1

文本字符串是唯一的東西你傳遞到ListView的項目?或者你是在像Button那樣的物體裏面扔東西?如果只是字符串,您可以始終使用綁定到內容的TextBlock指定listview ItemTemplate並完成目標。 –

+0

我開始明白我的困難。我將ListView綁定到ToString上具有覆蓋的對象,以發送出現在列表視圖中的文本。所以FlipView綁定到List 並且ListView綁定到 –

回答

0

給ListView的一個ItemTemplate,這使內容在一個封裝中的文本的TextBlock:

<ListView 
    ItemsSource="{x:Bind theObjectDetails, Mode=OneWay}" 
    HorizontalAlignment="Stretch" 
    > 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <TextBlock 
        Text="{Binding bodyText}" 
        TextWrapping="WrapWholeWords" 
        /> 
      </Grid> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
+0

這個答案是解決方案。起初綁定讓我失望,因爲Text屬性需要綁定到底層的dataObjectDetails BodyText,或者簡單地綁定到bodyText。 –