У меня есть ListBox, который имеет два столбца. При событии нажатия кнопки я добавляю данные столбца в ObservableCollection, и мне нужно связать коллекцию с ListBox, чтобы отобразить данные ObservableCollection. Мне трудно понять, как это сделать.Как заполнить двойной столбец ListBox
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? Кроме того, мне как-то нужно постоянно сохранять эти данные, когда приложение перезагружается. Как я могу сделать это с помощью IsolStorage?
К сожалению, что сделал не работа. Я отредактировал свое первоначальное сообщение выше, чтобы отразить ваше предложение 'ItemsSource =" {Binding Items} ", а также имена привязки TextBlock в списке для соответствия соответствующим именам в классе' History.cs', который у меня есть. Не удалось заставить его работать. – Matthew
У вас есть предметы Внутри вашей наблюдаемой коллекции? если так вы пытались назначить, HistoryListBox.ItemsSource = Items; – Sajeetharan
вы можете проверить здесь, http: //stackoverflow.com/questions/22463195/why-my-listbox-is-not-displaying-any-data/22463226#22463226 – Sajeetharan