C# 将控件与可观察集合绑定
在xaml中,当您展开ObservableCollection时,如何在带有网格的expander控件中显示它C# 将控件与可观察集合绑定,c#,wpf,xaml,C#,Wpf,Xaml,在xaml中,当您展开ObservableCollection时,如何在带有网格的expander控件中显示它 public class BoundPoco ( public string ExpanderText { set; get; } public ObservableCollection<DisplayDetail> { set; get; } ) public class DisplayDetail { public string FirstDi
public class BoundPoco
(
public string ExpanderText { set; get; }
public ObservableCollection<DisplayDetail> { set; get; }
)
public class DisplayDetail
{
public string FirstDisplayColumn { set; get; }
public string SecondDisplayColumn; { set; get; }
}
您应该在expander控件中使用items控件来实现这一点 首先,将代码隐藏错误进行排序-SecondDisplayColumn上有一个分号:
public string SecondDisplayColumn { set; get; }
。。。你在主要的可观察集合属性上没有名字
public ObservableCollection<DisplayDetail> DisplayDetails { set; get; }
<Expander Name="myExpander" Background="Tan"
HorizontalAlignment="Left" Header="My Expander"
ExpandDirection="Down" IsExpanded="True" Width="Auto">
<ItemsControl Name="items">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding FirstDisplayColumn}"/>
<TextBlock Grid.Column="1" Text="{Binding SecondDisplayColumn}"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Expander>
DisplayDetails.Add(new DisplayDetail() { FirstDisplayColumn = "FieldName1", SecondDisplayColumn = "FieldValue1" });
DisplayDetails.Add(new DisplayDetail() { FirstDisplayColumn = "FieldName2", SecondDisplayColumn = "FieldValue2" });
DisplayDetails.Add(new DisplayDetail() { FirstDisplayColumn = "FieldName3", SecondDisplayColumn = "FieldValue3" });
items.ItemsSource = DisplayDetails;