1
사람들을 보상하는 매우 간단한 개체 목록이 있습니다. 각 개체에는 성 (Sex)과 이름 (Name)이 있습니다. 다음 코드는 성별에 따라 올바르게 그룹화 된 사람 목록을 표시하지만 그룹의 각 항목에 대해 수평으로 채워지는 것처럼 보입니다. 그룹 머리글과 각 그룹 내의 항목이 둘 다 세로에 맞춰 지도록이 코드를 제거하려면 어떻게해야합니까?WPF ItemsControl 및 CollectionView를 사용하여 가로 맞춤 문제가 발생했습니다.
는C# 코드 : 코드
using System.Collections.Generic;
using System.Windows;
using System.Windows.Data;
using System.ComponentModel;
namespace ComboBoxColour
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private CollectionViewSource _viewSource;
public ICollectionView CollectionView { get; set; }
public List<Person> people;
public List<Person> People
{
get { return people; }
set { people = value; }
}
public MainWindow()
{
this.DataContext = this;
People = new List<Person>();
People.Add(new Person("Alice", SexEnum.Female));
People.Add(new Person("Bob", SexEnum.Male));
People.Add(new Person("Claire", SexEnum.Female));
People.Add(new Person("Daniel", SexEnum.Male));
this._viewSource = new CollectionViewSource { Source = this.People };
this.CollectionView = this._viewSource.View;
this.CollectionView.GroupDescriptions.Clear();
this.CollectionView.SortDescriptions.Clear();
this.CollectionView.GroupDescriptions.Add(new PropertyGroupDescription("Sex"));
this.CollectionView.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
InitializeComponent();
}
}
public enum SexEnum{Male,Female};
public class Person
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private SexEnum sex;
public SexEnum Sex
{
get { return sex; }
set { sex = value; }
}
public Person(string Name, SexEnum Sex)
{
this.Name = Name;
this.Sex = Sex;
}
}
}
WPF :
<Window x:Class="ComboBoxColour.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<StackPanel Orientation="Vertical">
<ItemsControl ItemsSource="{Binding CollectionView}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Content="{Binding Name}" Grid.Column="0"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Content="{Binding Items[0].Sex}" Grid.Column="0"/>
</Grid>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ItemsControl.GroupStyle>
</ItemsControl>
</StackPanel>
</Window>
정말 고마워! – JamesPD