![](/img/trans.png)
[英]Binding Pivot control with Observable Collection MVVM (windows phone 8)
[英]binding a control with a observable collection
在xaml中,展開時如何在帶有網格的擴展器控件中顯示ObservableCollection?
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; }
}
您應該在擴展器控件中使用項目控件來實現此目的。
首先,將您的代碼歸類為錯誤-您在“ SecondDisplayColumn”上使用了分號:
public string SecondDisplayColumn { set; get; }
...而且您在可觀察的主要收藏屬性中沒有名字!
public ObservableCollection<DisplayDetail> DisplayDetails { set; get; }
然后,如果您不使用依賴項屬性或INotifyPropertyChanged,請創建XAML來顯示數據(名稱為“ items”),如下所示:
<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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.