3

WPF Caliburn.Microアプリケーションには、TabControlがあります。必要に応じてタブを閉じられるようにしたい。私はここでそれを行う方法を見つけました:

http://devlicio.us/blogs/rob_eisenberg/archive/2010/10/19/caliburn-micro-soup-to-nuts-part-6c-simple-mdi-with-screen-collections.aspx

しかし、それを適用しようとすると、エラーが発生します。

CloseItemメソッドのターゲットが見つかりません。

これが私のコードです:

   <TabControl x:Name="Items" >
    <TabControl.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding DisplayName}" />
                <Button Content="X"  
                            cal:Message.Attach="CloseItem($dataContext)" />
            </StackPanel>
        </DataTemplate>
    </TabControl.ItemTemplate>
</TabControl>

手伝ってもらえますか?

ありがとう。

4

2 に答える 2

7

それを行う別の方法は次のとおりです。

<Button Content="X" cal:Message.Attach="DeactivateItem($dataContext, 'true')" />

そうすれば、余分なメソッドを作成する必要はありません。

于 2013-10-09T16:58:17.130 に答える
2

正確な問題の原因は完全にはわかりませんが(非常に古いチュートリアルと非常に異なるアセンブリが関係していると思われます)、それを機能させる方法はわかっています。このような古いパブリックメソッドを作成して呼び出します。CloseItemという名前を付けることができるように、そこにあるものをオーバーライドします。次に、この拡張メソッドを呼び出して、IConductorインスタンスとIScreenインスタンスを渡します。

public void CloseItem(object dataContext)
{
    ScreenExtensions.CloseItem(this, dataContext);
}
于 2012-08-08T16:26:30.587 に答える