UserControlからRoutedEventを処理するWPF
-
06-07-2019 - |
質問
VSによって生成されたデフォルトのUserControlがあり、TextBlockのみが追加されます:
<UserControl x:Class="MyNameSpace.Presentation.MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="myControl">
<Grid>
<TextBlock x:Name="SomeTextBox" Text="SomeText"></TextBlock>
</Grid>
今、このコントロールのいくつかのインスタンスを、コードビハインドから動的に親コントロールのWrapPanelに配置します。 MyControlインスタンスからの左マウスボタンクリックをすべて処理したい。次のコードがあります:
<UserControl x:Class="Minimo.Presentation.FirstParent"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Presentation="clr-namespace:Minimo.Presentation"
Height="300" Width="300">
<WrapPanel Name="wrapPanelOfMyControls" MyControl.MouseLeftButtonDown="WrapPanel1_OnMouseLeftButtonDown">
</WrapPanel>
イベントハンドラーでアクションを実行すると、動作します。ただし、XAMLファイルの編集時に次のエラーが表示されます。 タイプ 'MyControl'にアタッチ可能なプロパティ 'MouseLeftButtonDown'が見つかりませんでした。これを修正する方法は?
解決
これはXAMLコンパイラ/デザイナーのバグであり、無視しても問題ありません。ただし、「修正」できる場合があります。より詳細に認識しているタイプを指定することにより:
UIElement.MouseLeftButtonDown="WrapPanel1_OnMouseLeftButtonDown"
所属していません StackOverflow