我創建了一個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