在父级大小内自动调整datatemplate

时间:2014-01-09 11:29:51

标签: wpf datatemplate

说它的列表视图绑定到一个集合 我将listview宽度修复为100

itemtemplate是下面的东西

<DataTemplate> <Border>
    <TextBlock Foreground="{Binding Path=Color}"
                Text="{Binding Path=Name}"
                TextTrimming="CharacterEllipsis"/>
</Border> </DataTemplate>

我希望能够

the templates with multiple data

允许的最大值为3如何使文本框修剪为一个均匀的尺寸,使其尺寸合适,为其他文本框提供空间

我不想要编写c#代码才可以实现仅使用XAML?

2 个答案:

答案 0 :(得分:1)

试试这个

 <ListView Width="100">
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Width="100" Columns="3"/>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <ListView.ItemTemplate>
        <DataTemplate>
            <Border>
                <TextBlock Foreground="{Binding Path=Color}" Text="{Binding Path=Name}" TextTrimming="CharacterEllipsis"/>
            </Border>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

答案 1 :(得分:0)

您可以将ItemsPanel更改为UniformGrid,这会在您的商品之间平均分配可用空间。这是一个ItemsControl示例

<ItemsControl ItemsSource="{Binding Path=Items}" >
   <ItemsControl.ItemsPanel>
      <ItemsPanelTemplate>
         <UniformGrid Rows="1"/>
      </ItemsPanelTemplate>
   </ItemsControl.ItemsPanel>
   <ItemsControl.ItemTemplate>
      <DataTemplate>
         <Border>
            <TextBlock 
                Foreground="{Binding Path=Color}"
                Text="{Binding Path=Name}"
                TextTrimming="CharacterEllipsis"/>
         </Border>
      </DataTemplate>
   </ItemsControl.ItemTemplate>
</ItemsControl>