2016-07-26 10 views
1

列挙型のusercontrolに依存プロパティーがあります。私はそれをバインドしてメインウィンドウビューに設定しますが、変更はありません。列挙型依存プロパティーはビューから更新されません

これはユーザーコントロールで、アイコンがここにここに列挙

public enum Icon 
{ 
    _3DRotation, 
    Accessibility 
}; 

はDP

/// <summary> 
    /// Dependency Property used to back the <see cref="Icon"/> Property 
    /// </summary> 
    public static readonly DependencyProperty IconProperty = 
     DependencyProperty.Register("Icon", 
      typeof(Icon), 
      typeof(GoogleMaterialIcon), 
      new PropertyMetadata(null)); 

し、最終的に財産

列挙

<local:GoogleMaterialIcon Icon="AccountBalance"/> 

ですされています

public Icon Icon 
{ 
    get { return (Icon)GetValue(IconProperty); } 
    set 
    { 
     SetValue(IconProperty, value); 
    } 
} 

設定アイコンの中にブレークポイントを配置しますが、実行されることはありません。列挙型も独自のファイルにあります。 DPは最初の列挙に戻り、決して

更新更新しないので、私はそれを実行するたびは私に間違ったアイコンを示しています。いくつかの下Obviosly

public partial class GoogleMaterialIcon : UserControl 
{ 
    /// <summary> 
    /// Dependency Property used to back the <see cref="Icon"/> Property 
    /// </summary> 
    public static readonly DependencyProperty IconProperty = 
     DependencyProperty.Register("Icon", 
      typeof(Icon), 
      typeof(GoogleMaterialIcon), 
      new PropertyMetadata(null)); 


    /// <summary> 
    /// Constructor 
    /// </summary> 
    public GoogleMaterialIcon() 
    { 
     InitializeComponent(); 
    } 

    /// <summary> 
    /// Select a predefined icon to use 
    /// </summary> 
    public Icon Icon 
    { 
     get { return (Icon)GetValue(IconProperty); } 
     set 
     { 
      SetValue(IconProperty, value); 
     } 
    } 
} 
+0

は、usercontrolの後方コードを追加しました。私はまだビューのプロパティを使用しないでください。 'PropertyMetadata'にアイコン – Sam

+0

のセッターの何かをすることが考えられます。あなたはPropertyChanged-Eventがありません。ああ、実際に**あなたの財産を正しいタイプに束縛**するべきです。文字列を設定するだけでなく、通常これを追加する必要はありません。 – lokusking

+0

これは列挙型のための特別なものですか? – Sam

答えて

1

の背後にあるユーザーコントロールの完全なコードを - 少なくとも私にとっては - 奇妙場合によっては、Microsoftでさえ解説ではなく解決策が出てくるだけです。あなたのPropertyMetadataで

あなたはここで起こっていただきました残念ながら私は、深くに説明することはできません - イベントPropertyChanged

が欠落しています。しかし、DependencyPropertyのPropertyChangedイベントを使用することは、私にとっては受け入れ可能な回避策に思えます。

+0

プロパティが変更されたイベントが動作しました。それを答えとして入れて、ありがとう、ちょうど明快のために私は正の価値を試した、それは残念ながら働かなかった – Sam

関連する問題