ウィンドウからUserControl'DisplayHandler'内にあるUserControl'Display'に画像をバインドしようとしています。DisplayにはDependancyProperty'DisplayImage'があります。これはこれに似ていますが、彼らの答えは私の問題を助けませんでした。
DisplayHandlerには、プロパティ'DisplayImage'があり、BindingtoDisplayを渡す必要があります。ただし、Visual Studioでは、同じ名前のDependancyPropertyを2回登録することはできません。だから私はそれを二度登録せず、それを再利用することだけを試みました:
窓
<my:DisplayHandler DisplayImage=
"{Binding ElementName=ImageList, Path=SelectedItem.Image}" />
DisplayHandler
xaml
<my:Display x:Name="display1"/>
cs
public static readonly DependencyProperty DisplayImageProperty =
myHWindowCtrl.DisplayImageProperty.AddOwner(typeof(DisplayHandler));
public HImage DisplayImage {
get { return (HImage)GetValue(DisplayImageProperty); }
set { SetValue(DisplayImageProperty, value); }
}
public HImage DisplayImage /*alternative*/ {
get { return (HImage)display1.GetValue(Display.DisplayImageProperty); }
set { display1.SetValue(Display.DisplayImageProperty, value); }
}
**2つのプロパティのどちらもうまくいきませんでした。*
画面
public HImage DisplayImage {
get { return (HImage)GetValue(DisplayImageProperty); }
set { SetValue(DisplayImageProperty, value); }
}
public static readonly DependencyProperty DisplayImageProperty =
DependencyProperty.Register("DisplayImage", typeof(HImage), typeof(Display));
コントロールがツリーを上って、独自の値が定義されていない場合はそのプロパティを探すと思っていました。->参照
だからそれはどういうわけか動作するはずです...
ImageList(ImageListにはDisplayも含まれています)で機能したため、TemplatingとA ContentPresenterを試してみましたが、ListBoxItemのように値をバインドすることができませんでした。