我有一個列表框,它有兩列。在按鈕單擊事件中,我將列數據添加到ObservableCollection,並且需要將集合綁定到ListBox以顯示ObservableCollection數據。我無法弄清楚如何做到這一點。如何填充雙列列表框
MainPage.xaml中
<ListBox x:Name="HistoryListBox" ItemsSource="{Binding Items}" Grid.Row="1" Grid.ColumnSpan="2">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding ConnectionType}"/>
<TextBlock Grid.Column="1" Text="{Binding DateTime}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
MainPage.xaml.cs中
public ObservableCollection<History> Items { get; set; }
public MainPage()
{
InitializeComponent();
Items = new ObservableCollection<History>();
HistoryListBox.DataContext = Items;
}
private void TestButton_Click(object sender, RoutedEventArgs e)
{
...
PopulateHistoryListBox();
}
private void PopulateHistoryListBox()
{
Items.Add(new History { ConnectionType = ConnectionTypeResultTextBlock.Text, DateTime = DateTime.Now });
}
我不知道如何正確地綁定的ObservableCollection項目到ListBox?另外,我需要在應用程序重新加載時以歷史的方式保存這些數據。我如何使用IsolatedStorage來做到這一點?
那次不幸不行。我在上面編輯了我原來的帖子,以反映你的建議'ItemsSource =「{Binding Items}」'和ListBox中的TextBlock綁定名,以匹配我所擁有的'History.cs'類中的相應名稱。無法讓它工作。 – Matthew
您的可觀察集合中有物品嗎?如果是這樣你嘗試賦值,HistoryListBox.ItemsSource = Items; – Sajeetharan
你可以在這裏檢查,http://stackoverflow.com/questions/22463195/why-my-listbox-is-not-displaying-any-data/22463226#22463226 – Sajeetharan