0
WPFコントロール内にWindowsフォームレガシコントロールをラップしていますが、これはいくつかのWindowsフォームコントロールで行います。すなわち:私は、各WPFのためのキーを定義しています私のResourceDictionary
でWinFormHostオブジェクトを動的に設定するには?
// WinFormHost control, only AWrapper is shown here, but there
//are BWrapper, CWrapper etc
public class AWrapper : WindowsFormsHost
{
Child=new ALegacyWinFormControl();
}
//WPF control, similarly there are BControl, CControl etc
<UserControl x:Class="AControl">
<local:AWrapper />
</UserControl>
は私が各WPFコントロールを定義する必要がありますeliminate--たい重複の一つの層があり
// each WPF control has a key
<ResourceDictionary>
<DataTemplate x:Key="AControlKey">
<AControl />
</DataTemplate>
<DataTemplate x:Key="BControlKey">
<BControl />
</DataTemplate>
</ResourceDictionary>
を制御しますそれぞれWindowsFormsHost
ラッパーです。これは冗長です。とにかく私がUserControl
オブジェクトで取り除くことができ、DataTemplate
を直接WindowsFormsHost
のコントロールで接続できますか?すなわち:私はこのような何かを見ている:
// This wouldn't work
<ResourceDictionary>
<DataTemplate x:Key="AControlKey">
<AWrapper/>
</DataTemplate>
<DataTemplate x:Key="BControlKey">
<BWrapper/>
</DataTemplate>
</ResourceDictionary>
しかし、上記は動作していないようです。とにかく上記の仕事をするには?まったく可能ですか?
編集:
<DataTemplate x:Key="AControlKey">
<local:AWrapper/>
</DataTemplate>
使用例:
<ContentControl Content="." ContentTemplate="{StaticResource AControlKey}" />
ませんUserControl
が関与している
@dymanoid、ああ:
local
はAWrapper
クラスが定義されている名前空間にマッピングされます。私は質問を更新しました – Graviton