您應該使用擴展器控件中的項目控件來實現此目的。
首先排序錯誤,淘汰落後的代碼 - 你對「SecondDisplayColumn」流浪分號:
public string SecondDisplayColumn { set; get; }
...你對主要觀察的集合屬性沒有名字!
public ObservableCollection<DisplayDetail> DisplayDetails { set; get; }
然後,如果你不使用依賴屬性或INotifyPropertyChanged的 - 創建XAML顯示像這樣的數據(使用一個名稱「項目」):
<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;
我會首先給ObservableCollection一個名稱,以便您的代碼編譯。然後我只需將'GridView'直接綁定到它。你在使用視圖模型嗎?你有什麼嘗試? –