Вот как это выглядит в двух словах.
Сначала вы определяете модель, которая хранит ваши данные для привязки.
public sealed class MyListBoxItem
{
public string Field1 {get;set;}
public string Field2 {get;set;}
public string Field3 {get;set;}
}
Теперь у вас должен быть класс, которыйдержит эти модели для привязки.Этот тип часто называют ViewModel;он представляет информацию в представление для привязки на основе пользовательского ввода из представления.Его общедоступными свойствами обычно являются ObservableCollections и DependencyProperties, так что изменения в ViewModel будут автоматически приниматься представлением (пользовательским интерфейсом):
public sealed class MyViewModel
{
public ObservableCollection<MylistBoxItem> Items {get;private set;}
public MyViewModel()
{
Items = new ObservableCollection<MyListBoxItem>();
Items.Add(new MyListBoxItem{Field1="One", Field2="Two",Filed3="Three"};
}
}
В пределах кода для вашего пользовательского интерфейса, «View», вы создаете экземплярваш ViewModel и установите его как DataContext для вашего View.
public MyView()
{
this.DataContext = new MyViewModel();
}
это важно, так как DataContext «течет» через визуальное дерево.Он доступен каждому дочернему элементу, для которого он установлен.
Чтобы отобразить элементы, я должен связать ItemSource объекта ListView со свойством Items объекта DataContext (это понятно).Каждая строка в ListView имеет свой DataContext, установленный для каждого отдельного MyViewModel в свойстве Items.Таким образом, вы должны привязать каждый элемент отображения к свойствам MyListBoxItem.
<ListView Name="RecordListView" ItemsSource="{Binding Items}">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="1" Width="Auto" DisplayMemberBinding="{Binding Path=Field1}" />
<GridViewColumn Header="2" Width="50" DisplayMemberBinding="{Binding Path=Field2}" />
<GridViewColumn Header="3" Width="100" DisplayMemberBinding="{Binding Path=Field3}" />
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
Чтобы лучше понять весь этот процесс, ищите вопросы с высоким рейтингом здесь с тегом [MVVM] .
ТАКЖЕ, чтобы помочь отладить ваши привязки, настройте отладку для подробной привязки данных: