0

ユーザーコントロールのテンプレートは以下の通りです。

 <ControlTemplate x:Key="MarkerTemplate"  >
        <ToggleButton x:Name="btnMarkerPin" Click="btnMarkerPin_Click" >
            <ToggleButton.Template>
                <ControlTemplate >
                    <Grid>
                    <Grid>
                        <Ellipse Fill="Green" Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Center" ToolTip="{Binding}" />
        </Grid>
                    <Popup x:Name="pop" PlacementTarget="{Binding ElementName=pin}" StaysOpen="True" Placement="Top" VerticalOffset="-4" HorizontalOffset="-4" IsOpen="False" Margin="30,-50,0,0" AllowsTransparency="True" >
                        <Border Opacity=".7" CornerRadius="5" BorderBrush="Red" BorderThickness="2" Background="Yellow">
                            <Grid Margin="10">
                                    <Button x:Name="btnLinkMarker" Style="{StaticResource LinkButton}"  FontWeight="Bold" Content="{Binding}" />
                                </Grid>
                        </Border>
                    </Popup>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="ToggleButton.IsChecked" Value="True">
                            <Setter TargetName="pop" Property="IsOpen" Value="true"></Setter>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </ToggleButton.Template>               
        </ToggleButton>
    </ControlTemplate>   

クリックはポップアップの btnLinkMarker で発生するはずです。イベントを発生させると、設定されていない例外オブジェクト参照が発生します。誰でも助けることができます。このイベントを発生させるにはどうすればよいですか?

4

1 に答える 1

1

Commandをボタンに割り当ててCommandを呼び出し、コントロール (アーティファクト)でイベントを発生させません。UI

WPFでは、に直接作用することはできるだけ避けUIください。ここでは、少なくとも提供された質問のコンテキストでは、簡単に達成できるものです。

コマンドとは

于 2012-09-28T07:28:25.933 に答える