カスタムクラスにバインドする際に問題が発生しています。 dependencypropertyは私のviewmodelから正しい値を取得していないようです。ここに私のカスタムクラスがある:カスタムクラスのDependencyPropertyにバインド
public class DataResource : DependencyObject
{
public static readonly DependencyProperty ContentProperty =
DependencyProperty.Register("Content",
typeof(object),
typeof(DataResource));
public object Content
{
get { return (object)GetValue(ContentProperty); }
set { SetValue(ContentProperty, value); }
}
}
そして、私のUserControlのリソースでは、私が持っている:
<UserControl.Resources>
<local:DataResource x:Key="dataResource" Content="{Binding Test}"></data:DataResource>
</UserControl.Resources>
「テスト」私のViewModelには、私は問題なくにラベルをバインドできるプロパティです。この実装で何か間違っていますか?
更新:私がDependencyObjectではなくFreezableから継承する場合、これが機能します。私はなぜ、どうしてもうまくいけば、これを説明できるとは思えない。 Resources
にはコンテキストがありません
私はFrameworkElementから拡張するために私のDataResourceクラスを変更した場合、私はまだコンテキストを持っていませんか?自分のリソース内でCollectionViewSourceを使用することができ、UserControlに既にDataContextが設定されているので、バインドは正常に機能します。 – dbomb7
それは[継承コンテキスト](http://blogs.msdn.com/b/nickkramer/archive/2006/08/18/705116.aspx)を介して動作するかもしれませんが、わかりません。しかし、型を 'FrameworkElement'に変更することは確かに正しい方法ではありません。実際のDataContextにバインドすることはできません。あなたは' ElementName'や 'Source'のような別のソースの使用を検討し、そのソースと比較して –