Beispiel #1
0
 /// <summary>
 /// ViewModel.Selectionと、特定のNotifyObjectのnameをOneWayでBindする。
 /// ViewModel.SelectionTypeIsBool == true ならNotifyObjectのnameをbool型とみなす。falseならint型とみなす。
 ///
 /// 注意)
 /// ViewModel.SelectionOffsetの値が利いてくるので注意。
 /// Bind()を呼び出す前に、ViewModel.SelectionOffsetを適切な値に設定すること。
 /// </summary>
 /// <param name="notify"></param>
 /// <param name="name"></param>
 public void Bind(NotifyObject notify, string name)
 {
     if (ViewModel.SelectionTypeIsBool)
     {
         ViewModel.AddPropertyChangedHandler("Selection", (args) =>
         {
             notify.SetValueAndRaisePropertyChanged(name, ((int)args.value + ViewModel.SelectionOffset) != 0);
         });
         ViewModel.Selection = (notify.GetValue <bool>(name) ? 1 : 0) - ViewModel.SelectionOffset; // いま即座に値を反映させておく。
     }
     else
     {
         ViewModel.AddPropertyChangedHandler("Selection", (args) =>
         {
             notify.SetValueAndRaisePropertyChanged(name, (int)args.value + ViewModel.SelectionOffset);
         });
         ViewModel.Selection = notify.GetValue <int>(name) - ViewModel.SelectionOffset; // いま即座に値を反映させておく。
     }
 }