我创建了一个WPF应用程序,并遵循MVVM模式。我在我的xaml中有一个上下文菜单,我需要绑定命令和标题文本。使用下面的代码,我可以将上下文菜单的Header绑定到作为可观察集合的BOList属性中的“MenuItemName”。我的问题是,命令没有被解雇?我将上下文菜单的Item源更改为datacontextWPF +使用MVVM的上下文菜单项的绑定命令和标题
(DataContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}")
命令正常,但我的标题变得空白。有没有办法绑定我的标题和命令的菜单项?这里命令MenuClick是VM中的一个Icommand属性,而MenuItemName是BOList中的一个属性,它是绑定到我的ListBox的可观察集合。
<Grid>
<StackPanel Orientation="Vertical">
<Button x:Name="btnClickMe" Command="{Binding ButtonCommand}" Content="Click Me" />
<ListBox ItemsSource="{Binding BOList}" x:Name="lstDemo" SelectedItem="{Binding BussinessObj,Mode=OneWayToSource}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="stkStyleRender" Orientation="Horizontal" Background="Cyan" Width="525" Tag="{Binding DataContext, RelativeSource={RelativeSource AncestorType={x:Type ListBox}}}" >
<TextBlock x:Name="txtId" Text="{Binding FirstName}"></TextBlock>
<TextBlock x:Name="txtName" Text="{Binding LastName}"></TextBlock>
<StackPanel.ContextMenu>
<ContextMenu x:Name="cntMnuTest" ItemsSource ="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}" >
<MenuItem Header="{Binding MenuItemName}" Command="{Binding MenuClick}" CommandParameter="Icon"></MenuItem>
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
什么是MenuItemName看起来像视图模型?在控制台输出中查找Beinding表达式错误,并发布它是什么,如果你看到它。 – Berryl 2011-06-11 23:12:23