GridView
の中にUserControl
があります。それは以下のようなものです。UWP:UserControlがGridViewアイテムをオーバーライドします
<GridView Name="SymbolItemsGridView"
Grid.Column="0"
Background="#333333"
SelectionMode="None"
IsItemClickEnabled="True"
ItemsSource="{x:Bind Items}"
HorizontalAlignment="Stretch"
Margin="15,5,10,15"
ItemClick="SymbolGridView_ItemClick">
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:SymbolItem">
<local:SymbolControl Margin="10"/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
上記SymbolControl
がUserControl
ですが、私はので、このUserControl
内側に一つだけのボタンが丸い形状である
<ContentPresenter CornerRadius="40"
Height="40"
Width="40"
Background="Cyan"
x:Name="ContentPresenter"
Content="{TemplateBinding Content}"
Padding="0" />
を丸めるために、そのContentPresenter
スタイルを変えました。
<Button Name="SymbolButton"
Content="{x:Bind PhoneticSymbolItem.Text}"
Style="{StaticResource VowelSymbolButton}" />
私の質問は、私はGridViewの項目(上記の黒い部分)の角をクリックしたときにItemClick="SymbolGridView_ItemClick"
イベントハンドラのみ動作することです。ラウンドボタンをクリックしても機能しません。
おそらく、ボタンがGridViewアイテムの上にあり、ボタンをクリックするだけでボタンのクリックイベントがトリガーされるからです。しかし、私が設定したいメディアリソースは、GridViewのItemsSource="{x:Bind Items}"
にあります。私は私のUserControlに渡す方法を知らず、ボタンのクリックイベントで使用します。
また、ボタンのクリックイベントをGridViewアイテムにポップアップする方法があれば、同様に機能するはずです。私は私の質問が明確であることを願っています。
クリックイベントを処理したくない場合は、どのようなボタンが必要ですか? –