【发布时间】:2011-08-14 04:58:52
【问题描述】:
我在 WP7 应用程序中从 Silverlight 工具包中获得了 WrapPanel。在我的代码隐藏中,我将自己的用户控件添加到此包装面板中。每个用户控件都是一个显示航班信息的正方形。
<ScrollViewer x:Name="MyScrollViewer" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Height="307" VerticalAlignment="Bottom">
<toolkit:WrapPanel x:Name="MonitoredWrapPanel" Margin="10,0,0,0" MinWidth="200" Width="{Binding ElementName=MyScrollViewer, Path=ViewportWidth}">
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu x:Name="FlightContextMenuInGrid">
<toolkit:MenuItem Header="Stop monitoring flight" Click="MenuItem_Click" Tag="{Binding Path=FlightId}" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</toolkit:WrapPanel>
</ScrollViewer>
还有代码隐藏;
foreach (var flight in Cache.MonitoredCombinedFlights)
{
FlightSquare square = new FlightSquare();
square.DataContext = flight;
square.Margin = new Thickness(10, 5, 10, 5);
this.MonitoredWrapPanel.Children.Add(square);
}
我的问题是 MenuItem(用于 ContextMenu)没有绑定到我的用户控件的 DataContext 的 FlightId 属性,而是绑定到自身。
如何让 MenuItem 了解它在哪个 FlightSquare 上?
【问题讨论】:
标签: xaml windows-phone-7 binding contextmenu datacontext