尝试使用mvvm-light解决一个非常简单的问题,但经过几天筛选StackOverflow和大量Google搜索后,我还没有想出一个简单的解决方案。
我有一个带有dataTemplate的ListBox。 dataTemplate包含一个userControl来显示内容
<ListBox ItemSource={Binding Posts} >
<ListBox.ItemTemplate>
<DataTemplate>
<ctl:PostControl/> <-- child control I'm trying to pass data to
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我在父页面上都有viewModels(用于绑定帖子,没有问题),在PostControl上显示各个帖子。
问题:如何将个别帖子(从帖子控件绑定)到PostControl的viewModel?
我在PostControl定义上使用了DataContext:
DataContext="{Binding PostControlViewModel, Source={StaticResource Locator}}"
这似乎有效,但我需要访问父ListBox绑定到此控件的单个Post。如何将单个帖子传递到PostControls的viewmodels?
答案 0 :(得分:1)
如果没有看到你的UserCtl,很难说出现了什么问题,但我会说你的ListBox看起来不错,而且每个Control都应绑定到Posts元素。
你不所做的是覆盖UserCtl中的内容,所以我认为DataContext="..."
属性应该简单地去。
假设Posts
是PostControlViewModel的列表。如果它是(Business)Model Post类的列表,则需要转换器。但它应该包含ViewModels。