protected override void OnBindingContextChanged() { typePicker.SetBinding(PickerEx.SelectedItemProperty, new Binding(path: "Time.msdyn_type", converter: new OptionSetConverter <msdyn_timeentrytype>(), mode: BindingMode.TwoWay)); typePicker.ItemsSource = ViewModel.GetAllOptionSetValues <msdyn_timeentrytype>(); projectPicker.SetBinding(PickerEx.SelectedItemProperty, new Binding(path: "Time.msdyn_project", converter: new EntityPreviewConverter <msdyn_project>(), converterParameter: this.ViewModel, mode: BindingMode.TwoWay)); projectPicker.ItemsSource = ViewModel.GetReferenceKeys <msdyn_project>(msdyn_project.EntityLogicalName); projectTaskPicker.SetBinding(PickerEx.SelectedItemProperty, new Binding(path: "Time.msdyn_projectTask", converter: new EntityPreviewConverter <msdyn_projecttask>(), converterParameter: this.ViewModel, mode: BindingMode.TwoWay)); this.setEditabilityOfControls(ViewModel.CanEdit()); base.OnBindingContextChanged(); }
public void CanEditTimeEntryTest() { msdyn_timeentry timeEntry = new msdyn_timeentry(); TimeViewModel entry = new TimeViewModel(timeEntry); Assert.IsTrue(entry.CanEdit(), "A time entry that hasn't been saved (has null values) should be editable."); timeEntry.Id = Guid.NewGuid(); entry.SetDefaultValues(); Assert.IsTrue(entry.CanEdit(), "A time entry that has been saved with values should be editable."); timeEntry.msdyn_entryStatus = new OptionSetValue((int)msdyn_timeentry_msdyn_entrystatus.Submitted); Assert.IsFalse(entry.CanEdit(), "A time entry that has been submitted with values should be editable."); }