使用Silverlight 4 / MVVM。
我正在尝试将ViewModel绑定到带有自定义模板的列表框,但数据未显示。如果我设置DisplayMemberPath属性,我已设法获取原始数据。如果我删除此属性并尝试绑定到文本块,则不显示任何内容。这是XAML
<ListBox Height='200'
HorizontalAlignment='Left'
Margin='10,10,0,0'
Name='lstForumTopics'
VerticalAlignment='Top'
Width='200'
DataContext='{Binding Path=ForumTopics,Source={StaticResource ForumViewModel}}'
ItemsSource='{Binding Path=ForumTopics,Source={StaticResource ForumViewModel}}'>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation='Vertical'>
<TextBlock Text='{Binding ForumTopicText,Source={StaticResource ForumViewModel}}'></TextBlock>
<TextBlock Text='{Binding PostCount,Source={StaticResource ForumViewModel}}'></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.Background>
<LinearGradientBrush EndPoint='0.5,1'
StartPoint='0.5,0'>
<GradientStop Color='#FFDCE2E5'
Offset='1' />
<GradientStop Color='White'
Offset='0' />
</LinearGradientBrush>
</ListBox.Background>
</ListBox>
答案 0 :(得分:0)
我认为您需要将ItemsSource
的{{1}}绑定到ListBox
或ObservableCollection
IEnumerable
,而不仅仅是ForumViewModel
。< / p>
答案 1 :(得分:0)
我相信你会混淆Binding引擎。如果你打算使用StaticResource试试......
DataContext="{Binding Source={StaticResource ForumViewModel}}"
ItemsSource="{Binding Path=ForumTopics}"
<TextBlock Text="{Binding Path=ForumTopicText}" />
<TextBlock Text="{Binding Path=PostCount}" />
控件有一个DataContext,用于保存其他属性将绑定到的对象。 ItemsSource只需要知道要绑定的DataContext对象的属性名称。最后,DataTemplate为项目源中的每个对象设置了一个DataContext,因此它们只需要绑定到ItemsSource中对象的属性名称。