DependencyPropertyを持つUserControlがあります。データバインディング式を使用して、ホストウィンドウで値を設定します。ただし、期待どおりに機能しません。
ユーザーコントロールのコードビハインドからのスニペット:
public class ViewBase : UserControl
{
public static readonly DependencyProperty ViewModelProperty
= DependencyProperty.Register(
"ViewModel", typeof(ViewModelBase), typeof(ViewBase));
public ViewModelBase ViewModel
{
get { return GetValue(ViewModelProperty) as ViewModelBase; }
set
{
SetValue(ViewModelProperty, value);
}
}
}
XAMLから(注:CasingListViewはViewBaseから継承します):
<CasingEditor:CasingListView x:Name="_casingListView"
ViewModel="{Binding CasingListViewModel}" />
何が起こるかは何もありません。具体的には、setterが呼び出されることはなく、プロパティはnullのままです。ソースプロパティCasingListViewModel
に値があることはわかっています。これは、別のプロパティ(DataContext)にバインドしようとしたため、正常に機能しました。
依存関係プロパティはデータバインドできると思いました。私が間違っている?