2016-06-30 4 views
1

を設定しているときに私が来てる更新されません。..Xamarinフォーム - ラベル私はバインディングについて何かを理解していないので、色やその他の属性は、そのバインドさ属性が

私はC#のコードでこの属性を持ちます:

<Label Text="{Binding MyText}"/> 

それが動作する最初の時間が、私はMyText文字列を変更した場合、その後、<Label/> DOE:

public string MyText { get; set; } 

、その後、XAMLの一部で

私はまた、人々がINotifyChangeまたはそれに類することについて話す場所についていくつかの投稿を見ましたが、どのようにこのBindを動作させますか?なぜ更新は一定ではなく、なぜそれはちょうど同じように動作しないのですか?

問題は私のプロジェクターが少し複雑です。私はカスタムカレンダーグリッド のようなDayCase[6][7]に「自分でもう一度バインド」を作成しました。Windowsカレンダー、ディスプレイは同じです。

私の質問が二重であるため、属性の1つが「listen」に変更する必要がありますか?この例では、私はちょうど1つのラベルについて話していますが、DayCaseで1つのラベル、更新する3つの色、更新する月/年のタイトルなどあります。

私は本当に正直に失ってしまいました。思う方法を知っている、それを作る方法..

ありがとう!

答えて

1

結合作業を行います。その後

protected virtual void OnPropertyChanged(PropertyChangedEventArgs e) 
     { 
      var eventHandler = PropertyChanged; 
      eventHandler?.Invoke(this, e); 
     } 

、同じように結合することがあなたの財産を書く:あなたのViewModelはそれがでフックアップ、およびそのための呼び出しを作成するXamarin.Forms'バインディングシステムハンドラpublic event PropertyChangedEventHandler PropertyChangedを、持っている、INotifyPropertyChangedを実装する必要がありますこの:詳細について

private string _myText; 
    public string MyText 
    { 
     get { return _myText; } 
     set 
     { 
      if (_myText != value) 
      { 
       _myText = value; 
       OnPropertyChanged(new PropertyChangedEventArgs(nameof(MyText))); 
      } 
     } 
    } 

、また、他のMVVMフレームワーク(MvvmCross、MVVM光など)があるhttps://developer.xamarin.com/guides/xamarin-forms/xaml/xaml-basics/data_bindings_to_mvvm/

を読んだり、Xamarin.Forms.Labは、すでにあなたのためにいくつかの仕事をしたしてください。あなたのcustomCalendar問題については

、結合作業がPropertyChangedイベントを呼び出すためにあるようにする、あなたはすごい

public void UpdateDayCase(int i, int j, DayCase) 
{ 
    this.DayCases[i][j] = DayCase; 
    OnPropertyChanged(new PropertyChangedEventArgs(nameof(DayCases))); 
} 
+0

のようにこれを処理するメソッドを書くことができるので、あなたの答えは完璧です!すべてがうまくいき、申し訳ありませんが、あなたの編集を見たことはありませんでしたが、私はすでに自分で何かを作っていました:)とにかくそれをありがとう;)しかし、これは重複していますが、 ;) – Emixam23

関連する問題