Sud*_*ngh 5 wpf dataview listcollectionview
<!-- GroupHeaderStyle -->
<Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander IsExpanded="False" Margin="15,0,0,0">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ????????????}"/>
<TextBlock Text="-->"/>
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我希望显示它被分组的属性名称.性别 - >男孩; 性别 - >女孩.
public class Test
{
string gender;
public string Gender
{
get { return gender; }
set { gender = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
我应该提供什么????????????? 在上面的xaml?
另外,如果有任何好的书或链接解释分组的内部细节,请告诉我ListCollectionView.
应该是CollectionViewGroupDataContext的一个实例,它将其属性设置为“group”(即 Gender 的值)。但是 CollectionViewGroup 和它来自哪个属性之间没有关联。从技术上讲,该属性可能有多个层次。Name
唯一好的选择是对另一个拥有您所需的所有信息的房产进行排序。该CollectionViewGroup.Name属性是一个对象,而不是字符串。所以你可以这样做:
public class GenderGroup {
public GenderGroup(string gender) {
this.Gender = gender;
}
public string Gender { get; private set; }
public string Title {
get {
return "Gender";
}
}
public override bool Equals(object obj) {
var other = obj as GenderGroup;
return (other != null && string.Equals(this.Gender, other.Gender));
}
}
public class Test {
string gender;
GenderGroup genderGroup = new GenderGroup("none");
public string Gender {
get { return gender; }
set {
gender = value;
genderGroup = new GenderGroup(gender);
}
}
public GenderGroup GenderGroup {
get { return genderGroup; }
}
}
Run Code Online (Sandbox Code Playgroud)
然后像这样访问它:
<!-- GroupHeaderStyle -->
<Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander IsExpanded="False" Margin="15,0,0,0">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name.Title}"/>
<TextBlock Text="-->"/>
<TextBlock Text="{Binding Name.Gender}"/>
</StackPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
这是基本思想,但您可以使 GenderGroup 更加通用。"Gender"因此,您可以传递具有参数的参数,而不是硬编码。
| 归档时间: |
|
| 查看次数: |
1829 次 |
| 最近记录: |