GridViewColumn Привязка ListBoxItem против ListViewItem - PullRequest
0 голосов
/ 05 июля 2018

Я возился с GridViews и натолкнулся на странное поведение с привязками к GridViewColumns.

С этим XAML:

<ListView Name="lv">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="First" DisplayMemberBinding="{Binding firstName}"/>
            <GridViewColumn Header="Last" DisplayMemberBinding="{Binding lastName}"/>
        </GridView>
    </ListView.View>
</ListView>

почему следующие данные отображают:

public class Foo : ListBoxItem {               // ListBoxItem
    public string firstName { get; set; }
    public string lastName { get; set; }
}
public partial class MainWindow : Window {
    public MainWindow() {
        InitializeComponent();
        lv.Items.Add(new Foo { firstName = "John", lastName = "Doe" });
        lv.Items.Add(new Foo { firstName = "Jane", lastName = "Smith" });
    }
}

, в то время как следующие не не отображают данные:

public class Foo : ListViewItem {              // ListViewItem
    public string firstName { get; set; }
    public string lastName { get; set; }
}
public partial class MainWindow : Window {
    public MainWindow() {
        InitializeComponent();
        lv.Items.Add(new Foo { firstName = "John", lastName = "Doe" });
        lv.Items.Add(new Foo { firstName = "Jane", lastName = "Smith" });
    }
}

1 Ответ

0 голосов
/ 06 июля 2018

почему следующие данные отображают данные ... в то время как следующие данные не отображают

Поскольку элемент управления ListView не создает контейнер ListViewItem для ListViewItem. Для всех других типов объектов, добавляемых в коллекции Items или ItemsSource, создается неявный контейнер ListViewItem.

Пожалуйста, обратитесь к этому сообщению в блоге для получения дополнительной информации о контейнерах элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...