2011-07-28 7 views
1

のDataContextの結合:仕事に私が今使っている答えにビットと感謝持つユーザーコントロール

public PopupProgramazione Popup 
    { 
     get { return _Popup; } 
     set 
     { 
      _Popup = value; 
      RaisePropertyChanged("Popup"); 
     } 
    } 

    public void Programmazione(InterventoSchedeConsuntivi intervento) 
    { 
     Popup.Show = true; 
     InterventoPopupProgramazione = intervento; 
    } 

奇妙な問題は、XAMLが付属しています。私の見解モデルで

public class PopupProgramazione : DependencyObject 
    { 
     public static readonly DependencyProperty ShowProperty = DependencyProperty.Register("FirstNo", typeof(bool), typeof(PopupProgramazione), null); 

     public bool Show 
     { 
      get { return (bool)GetValue(ShowProperty); } 
      set { SetValue(ShowProperty, value); } 
     } 
    } 

を:

<local:PopupProgrammazione 
      x:Name="popupProg" 
      Height="300" 
      Width="400" 
      Canvas.ZIndex="2" 
      Canvas.Left="150" 
      Canvas.Top="150" Grid.RowSpan="4" Grid.Column="2" Margin="7,4,12,296" 
      Visibility="{Binding Path=Popup.Show, Mode=TwoWay, Converter={StaticResource BoolToVisibilityConverter}}" 
      DataContext="{Binding Path=InterventoPopupProgramazione}" 
      > 
     </local:PopupProgrammazione> 

可視性が設定されていればうまく動作し、私はdebuを使用してコンバータを通過していることがわかりますg。

両方を指定した場合、ポップアップの初期化は行われません(ポップアップはPopup.Show = falseの間に表示されます)。私は、ポップアップ閉じた場合でも:

private void Close_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
     { 
      this.Visibility = Visibility.Collapsed; 
     } 

をし、それを開くために、私の関数で渡し、それがコンバータで通過することなく動作しますが、。

誰かが私に何が起こっているのか説明できますか?

[編集] 私のusercontrolを専用のオブジェクトにバインドするのではなく、main xamlのdatacontextを使用して、完全に動作します。 [/ EDIT]

答えて

0

あなたは基本的には静的メソッドを設定する必要が依存プロパティ

http://msdn.microsoft.com/en-us/library/ms752914.aspx

まともなチュートリアル http://www.switchonthecode.com/tutorials/wpf-tutorial-introduction-to-dependency-properties

を使用する必要があります...これは登録されますXAMLでそのプロパティにバインドさせます。次に、コード内で使用する依存プロパティを取得および設定するためにプロパティをrepointします。

それはそれがより多くの困難になります

;)

編集:

ああ...申し訳ありませんたぶん私は誤解..あなたはちょうどあなたが行ったようのviewmodelにある値にバインドカントshowPopupのために?プロパティ変更イベントでその登録に失敗しましたか?

+0

あなたの助けを借りてジョン、私はシルバーライトから始まっていて、私は拘束力が失われています... – Arthis

+0

私はあなたが私に言ったことをすべて書き直しました。私は全体の質問を書き直しました。同じ質問ですが、コードは進化しました...あなたに何千ものおかげで! – Arthis

関連する問題