我正在按照本教程学习如何使用ListView ItemTemplate显示人员列表: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}
,但它会显示此错误。
答案 0 :(得分:1)
我认为MenuItemViewModel
类中的实施MenuItemView
属性可能存在问题。您是否已将MenuItemViewModel
属性实施为 DependencyProperty ?也许你可以参考这个post。