Я делаю приложение для Windows Store. На главной странице XAML у меня есть ListView, и я пытаюсь связать его с наблюдаемой коллекцией в файле, находящемся за кодом.Почему ListView не заполняется DataSource?
Но я вижу пустой экран. Почему список не заселен?
EDIT:
Я делаю приложение, чтобы отобразить имена некоторых элементов управления пользовательского интерфейса в XAML и я позже добавить событие нажатия на каждой строке списка, чтобы перейти на новую страницу, содержащую демо что контроль, вот почему я использовал имя Control для модели. Я делаю свое собственное приложение для кухонной раковины.
Вот MainPage.xaml:
<ListView x:Name="listOfControls" ItemsSource="{Binding controlsDataSource}" SelectionChanged="listOfControls_SelectionChanged">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding name}"></TextBlock>
<TextBlock Text="{Binding desc}"></TextBlock>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
и вот MainPage.xaml.cs
Примечание: используется термин управления в коде это имя, данное мною модельному классу, который не имеет никакого отношения к элемент управления пользовательского интерфейса.
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
namespace AllControls
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainPage : Page
{
private ObservableCollection<AllControls.Models.Control> controlsDataSource { get; set; }
public MainPage()
{
this.InitializeComponent();
this.controlsDataSource = new ObservableCollection<AllControls.Models.Control>();
this.controlsDataSource.Add(new AllControls.Models.Control("ScrollViewer", "ScrollViewer Desc"));
this.controlsDataSource.Add(new AllControls.Models.Control("ScrollViewer", "ScrollViewer Desc"));
this.controlsDataSource.Add(new AllControls.Models.Control("ScrollViewer", "ScrollViewer Desc"));
}
/// <summary>
/// Invoked when this page is about to be displayed in a Frame.
/// </summary>
/// <param name="e">Event data that describes how this page was reached. The Parameter
/// property is typically used to configure the page.</param>
protected override void OnNavigatedTo(NavigationEventArgs e)
{
}
void listOfControls_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
}
}
}
Вот модель, Control.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AllControls.Models
{
class Control
{
private String name{ get;set;}
private String desc { get; set; }
public Control(String iName, String iDesc)
{
name = iName;
desc = iDesc;
}
}
}
Я создаю приложение для отображения имен некоторых элементов управления пользовательского интерфейса в XAML, и позже я добавлю события click в каждую строку списка, чтобы перейти на новую страницу с демонстрацией этого элемента управления, вот почему я использовал имя Управление моделью. Я делаю свой собственный простой кухонный уголок. –
je kahi lihayachay вопрос babat, прямой вопрос madhye lihit ja – Freelancer
niruttar aahet sagale tumachya prashna pudhe !!! – Freelancer