标签: headereditemscontrol

具有静态标头的ItemsControl

我认为我有一个非常简单的目标,但似乎无法实现.

我想要实现的是拥有一个带有标题的ItemsControl(因为我不希望列表的选择功能).优选地是静态头部.

目前我正在使用网格作为标题,然后将该网格复制到ItemsControl的ItemTemplate(DataTemple)中,然后将它们一个放在网格中.它有点工作,但它并不总是很好地排队等.

然后我找到了HeaderedItemsControl,我认为这是一个绝妙的主意,但不能让它工作,它根本不显示标题.我试过以下几点;

  • 只需在Xaml的"标题"中输入文本即可
  • 在ItemsControl.Header标记内放置带有静态文本的TextBlocks网格
  • 将网格放置在HeaderTemplate(Datatemplate)中并将其绑定到一个简单对象

我在Blend的一个小项目中完成了这一切,然后将它移到生产应用程序中,我只是使用了我创建的简单示例数据源.

我可能完全错过了这艘船,但任何帮助将不胜感激.

我目前的代码如下,首先是我的HeaderedItemsControl

<HeaderedItemsControl Header="HeaderedItemsControl"  
        ItemsSource="{Binding Collection, Mode=Default}" 
        ItemTemplate="{DynamicResource ItemsControlDataTemplate}" 
        HeaderTemplate="{DynamicResource ItemsControlHeaderDataTemplate}"/>
Run Code Online (Sandbox Code Playgroud)

然后我有一个按预期工作的ItemTemple

<DataTemplate x:Key="ItemsControlDataTemplate">
        <Grid d:DesignWidth="268">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.754*"/>
                <ColumnDefinition Width="0.246*"/>
            </Grid.ColumnDefinitions>
            <TextBlock Text="{Binding Property1, Mode=Default}" TextWrapping="Wrap" d:LayoutOverrides="Height" HorizontalAlignment="Stretch" Margin="0" />
            <TextBlock Text="{Binding Property2, Mode=Default}" TextWrapping="Wrap" d:LayoutOverrides="Height" Grid.Column="1" HorizontalAlignment="Left" Margin="0" />
        </Grid>
    </DataTemplate>
Run Code Online (Sandbox Code Playgroud)

然后是反对其职业道德的标题,我已经尝试使用绑定和TextBlock.Text属性中的纯文本

<DataTemplate x:Key="ItemsControlHeaderDataTemplate">
        <Grid d:DesignWidth="268">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.754*"/>
                <ColumnDefinition Width="0.246*"/>
            </Grid.ColumnDefinitions>
            <TextBlock Text="{Binding Header.Header1, Mode=Default, Source={StaticResource SampleDataSource6}}" TextWrapping="Wrap" HorizontalAlignment="Stretch" Margin="0"/>
            <TextBlock Text="{Binding Header.Header2, Mode=Default, Source={StaticResource SampleDataSource6}}" TextWrapping="Wrap" d:LayoutOverrides="Height" Grid.Column="1" …
Run Code Online (Sandbox Code Playgroud)

wpf xaml headereditemscontrol

10
推荐指数
1
解决办法
1万
查看次数

如何显示HeaderedItemsControl的标题?

我有以下代码:

 <Window.Resources>      
       <DataTemplate x:Key="SectionTemplate" >                          
              <TextBlock Text="{Binding Path=Name}" />                  
       </DataTemplate>
 </Window.Resources>
 <Grid >        
   <Border>
       <HeaderedItemsControl Header="Top1"
                             ItemsSource="{Binding Path=List1}" 
                             ItemTemplate="{StaticResource SectionTemplate}"/>
    </Border>       
 </Grid>
Run Code Online (Sandbox Code Playgroud)
public class MainWindow
{
   public List<Item> List1
   {
      get { return list1; }
      set { list1 = value; }
   }

   public MainWindow()
   {             
      list1.Add(new Item { Name = "abc" });
      list1.Add(new Item { Name = "xxx" });

      this.DataContext = this;      
      InitializeComponent();       
   }   
}

public class Item
{     
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,Items渲染,但没有标题.

c# wpf xaml headereditemscontrol

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

在WPF HeaderedItemsControl中自动调整标头

我正在使用HeaderedItemsControl来显示人名.我还想显示一个包含3个标签的标题:标题,名字和姓氏.当名称很短时,这很容易.但是,如果名字很长,则标题不再与名称匹配.我怎样才能解决这个问题?谢谢!

wpf headereditemscontrol

2
推荐指数
1
解决办法
2346
查看次数

标签 统计

headereditemscontrol ×3

wpf ×3

xaml ×2

c# ×1