1

ACB ( http://marlongrech.wordpress.com/2008/12/04/attachedcommandbehavior-aka-acb/ )を使用してツリービューでイベントを処理したい。

XAML ファイルのバインディングに行き詰まっています。イベントは発生しますが、ストラテジーが null であるため、ACB ライブラリで null 参照例外が発生し続けます。

    /// <summary>
    /// Executes the strategy
    /// </summary>
    public void Execute()
    {
        strategy.Execute(CommandParameter);
    }

XAML ファイルに以下を追加しました (抜粋):

xmlns:acb="clr-namespace:AttachedCommandBehavior;assembly=AttachedCommandBehavior"

    <StackPanel x:Name="VerklaringenTreeviewPanel">
    <Border x:Name="TreeviewHeaderBorder" Style="{StaticResource TreeviewBorderHeaderStyle}">
        <TextBlock x:Name="tbTreeviewHeader" Text="Verklaringen concept" Style="{StaticResource TreeviewHeaderStyle}"/>
    </Border>

    <TreeView x:Name="MyTreeview" ItemsSource="{Binding}" Style="{StaticResource TreeviewStyle}">
        <TreeView.Resources>
            <ResourceDictionary Source="..\Themes\TreeviewItemStyle.xaml" />
        </TreeView.Resources>
    </TreeView>

    <StackPanel.Resources>
        <HierarchicalDataTemplate DataType="{x:Type local:MyDataType}" ItemsSource="{Binding MyChildDataType}">
            <StackPanel Orientation="Horizontal" acb:CommandBehavior.Event="MouseDown" acb:CommandBehavior.Command="{Binding SomeCommand}" acb:CommandBehavior.CommandParameter="Hi There">

そして、私が追加したViewmodelで:

        Public Property SomeCommand() As ICommand
        Get
            Return _someCommand
        End Get
        Private Set(value As ICommand)
            _someCommand = value
        End Set
    End Property

    Public Sub New()
        MyBase.New()

        Dim simpleCommand As SimpleCommand = New SimpleCommand()
        simpleCommand.ExecuteDelegate = Sub(x As Object)
                                            Dim test As String
                                            test= "noot" 'I want to hit this breakpoint
                                        End Sub
        Me.SomeCommand = simpleCommand
    End Sub

誰がバインディングを手伝ってくれますか?

よろしく、

ミシェル

4

1 に答える 1

1

このバインディングが壊れているため、あまり説明的でない例外がスローされます: acb:CommandBehavior.Command="{Binding SomeCommand}"

そのため、WPF はSomeCommandプロパティを見つけることができませんでした。私は問題が周りにあると思うHierarchicalDataTemplateので、DataContextあなたが期待するものではありません...

実行時に Visual Studio の [出力] ウィンドウでバインド エラーを確認すると、何を修正すれば動作するかがわかります。

于 2012-03-23T06:33:15.163 に答える