如何将绑定数据项传递给ListBox项的ViewModel?

时间:2010-08-09 18:38:36

标签: silverlight mvvm-light

尝试使用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?

1 个答案:

答案 0 :(得分:1)

如果没有看到你的UserCtl,很难说出现了什么问题,但我会说你的ListBox看起来不错,而且每个Control都应绑定到Posts元素。

所做的是覆盖UserCtl中的内容,所以我认为DataContext="..."属性应该简单地去。

假设Posts是PostControlViewModel的列表。如果它是(Business)Model Post类的列表,则需要转换器。但它应该包含ViewModels。