私はWPFで作業しており、一部のuserControlを作成しています。これらの一部は他の内部にあります。
userControlsの1つの背後にあるコードで、次のように依存関係プロパティを作成しました:(MyInnerControl.xaml.cs)
public static DependencyProperty MyDependencyProperty = DependencyProperty.Register(
"MyProperty",
typeof(Object),
typeof(MyInnerControl));
public Object MyProperty
{
get
{
return (Object)GetValue(MyDependencyProperty );
}
set
{
SetValue(MyDependencyProperty , value);
}
}
...
...
そして、このプロパティは完全に機能しますが、次に、この依存関係を別のuserControlで次のように公開しようとします。
コンテナーuserControlの背後にあるコード:(MyContainerControl.xaml.cs)
public static DependencyProperty MyExternalDependencyProperty = DependencyProperty.Register(
"MyExternalProperty",
typeof(Object),
typeof(MyContainerControl));
public Object MyExternalProperty
{
get
{
return (Object)GetValue(MyExternalDependencyProperty );
}
set
{
SetValue(MyExternalDependencyProperty , value);
}
}
...
...
そして私のXAMLでは:(MyContainerControl.xaml)
<UserControl x:Class="MyControls.MyContainerControl" Name="this"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="329" d:DesignWidth="535" xmlns:my="clr-namespace:MyInnerControls">
<Grid>
<my:MyInnerControl Margin="6,25,6,35" MyProperty="{Binding ElementName=this, Path=MyExternalProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
...
...
最後に、MyContainerControlをグリッドに追加し、以下のようにviewModelへのバインドを行います:(AnotherContainer.xaml)
...
<MyContainerControl MyExternalProperty="{Binding MyExternalProperty}"/>
...
私の問題は、ExternalPropertyが値を取得または設定しないことです。私は何が間違っているのですか?
明確にするために、私のDataContextは適切に設定されています。
誰かが私を助けてくれることを願っています、事前に感謝します。