/// <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; // いま即座に値を反映させておく。 } }