Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将控件与可观察集合绑定_C#_Wpf_Xaml - Fatal编程技术网

C# 将控件与可观察集合绑定

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

在xaml中,当您展开ObservableCollection时,如何在带有网格的expander控件中显示它

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;