我正在开发一个带网格的棋盘游戏。每个网格都为最终用户提供了一些选项。我们的想法是,当用户单击网格单元格时,选项菜单将显示在网格下方。我的XAML看起来像:
MainPage.xaml中:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="450"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<game:Board Grid.Row="0"/>
<game:Chooser Grid.Row="1" d:IsHidden="False"/>
</Grid>
Board是一个网格,每个单元格中包含一个方形对象。每个方形对象都有MouseLeftButtonDown监听器。单击方形对象时,必须打开选择器菜单,并且必须将一些参数传递给此对象。
选择器是另一个类的成员时,最好的方法是什么?我是否需要将选择器对象(在MainPage.xaml中)传递给板和方形对象?或者有没有办法将事件传播给选择器?
干杯 汤姆
答案 0 :(得分:1)
我会做三件事:
上面的代码最终会看起来像:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="450"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<game:Board Grid.Row="0" x:Name="MyBoard"/>
<game:Chooser Grid.Row="1" Target="{Binding ChosenTile, ElementName=MyBoard}"/>
</Grid>
另一个选择是仍然执行第一部分,但不是创建DependencyObject,而是提升自己的事件并在代码隐藏中执行其他所有操作。