コマンドが添付されたマルチバインディングを持つボタンがあります:
<Button Content="remove" HorizontalAlignment="Right" VerticalAlignment="Top" Cursor="Hand" Focusable="False">
<Button.Command>
<Binding Path="DataContext.DeleteColumnCommand" ElementName="treeView" />
</Button.Command>
<Button.CommandParameter>
<MultiBinding Converter="{StaticResource midConverter}">
<Binding Path="Text" ElementName="tableName"/>
<Binding Path="Name" />
</MultiBinding>
</Button.CommandParameter>
</Button>
コンバーターにブレークポイントを設定すると、すべての値が設定され、機能しているように見えます。
ただし、コマンドで実際に呼び出されると、 null が設定された配列を引数として受け取り ます。
これは私が割り当てていない参照型であり、WPF のコンテキストでは最大パフォーマンスが非常に必要とされるため、ナンセンスではありません。
私の質問は次のとおりです: WPF のような突然変異に関するガイダンス/保証を最もよく要約しているのは何ですか?
これに関するルールはありますか?
PS :他の人が同じ問題を抱えていて、どうやら原因を理解していなかったようです。
PPS : 質問を十分に明確にしていない可能性がありますが、取得したものが再利用される可能性があるため、ヒープに新しい構造、リスト、配列などを割り当てる必要があるのは当然のことです。問題は次のとおりです。このアドホックな例から、そのような場合の WPF のルールは何ですか?