MVVM ItemTemplate с пользовательским управлением

c# xaml mvvm itemtemplate

407 просмотра

1 ответ

Я следую этому уроку о том, как использовать шаблон элемента ListView для отображения списка людей: http://www.wpf-tutorial.com/listview-control/listview-data-binding-item-template/

Я понял общую концепцию, но я застрял в одной точке.

Вот пример ItemTemplate:

    <Grid>
            <ListView Margin="10" Name="lvDataBinding" ItemsSource"={Binding MyPersonsList}">
                    <ListView.ItemTemplate>
                            <DataTemplate>
                                    <WrapPanel>
                                            <TextBlock Text="Name: " />
                                            <TextBlock Text="{Binding Name}" FontWeight="Bold" />
                                            <TextBlock Text=", " />
                                            <TextBlock Text="Age: " />
                                            <TextBlock Text="{Binding Age}" FontWeight="Bold" />
                                            <TextBlock Text=" (" />
                                            <TextBlock Text="{Binding Mail}" TextDecorations="Underline" Foreground="Blue" Cursor="Hand" />
                                            <TextBlock Text=")" />
                                    </WrapPanel>
                            </DataTemplate>
                    </ListView.ItemTemplate>
            </ListView>
    </Grid>

Что я не могу понять, так это как заменить TextBlocks пользовательским элементом управления следующим образом:

    <Grid>
            <ListView Margin="10" Name="lvDataBinding" ItemsSource"={Binding MyPersonsList}">
                    <ListView.ItemTemplate>
                            <DataTemplate>
                                    <WrapPanel>
                                            <MyPersonDisplayer Person="{Binding ???}"/>
                                    </WrapPanel>
                            </DataTemplate>
                    </ListView.ItemTemplate>
            </ListView>
    </Grid>

Как сказать шаблону, что я хочу установить MyPersonDisplayerсвойство Personэлемента управления с исходным элементом?


РЕДАКТИРОВАТЬ :

Я пытался только добавить Person={Binding}, но он отображает мне эту ошибку.

CompilError

Автор: Panda Источник Размещён: 08.11.2019 11:24

Ответы (1)


1 плюс

Я думаю, что это может иметь проблемы со MenuItemViewModel свойством реализации в MenuItemView классе . Есть ли у вас реализовать MenuItemViewModel свойство как DependencyProperty ? Может быть, вы можете сослаться на этот пост .

Автор: zzczzc004 Размещён: 24.08.2016 07:48
Вопросы из категории :
32x32