示例#1
0
        /// <summary>
        /// Исключения:
        ///   System.ArgumentNullException:
        ///     Параметр model имеет значение null.
        /// </summary>
        /// <param name="model"></param>
        public DetailItemViewModel(IItemModelAdapter <DataModelType> model,
                                   IDataDetailViewModelCreator <DataModelType, DataDetailViewModelType> viewModelCreator,
                                   IItemModelAdapterCreator <DataModelType> itemModelCreator)
        {
            if (model == null)
            {
                throw new ArgumentNullException("model can't be null");
            }
            if (viewModelCreator == null)
            {
                throw new ArgumentNullException("viewModelCreator can't be null");
            }
            if (itemModelCreator == null)
            {
                throw new ArgumentNullException("itemModelCreator can't be null");
            }

            _model          = model;
            _model.Updated += OnUpdate;
            UpdateCommand   = new UpdateItemCommand <DataModelType, DataDetailViewModelType>(this);
            EditCommand     = new EditItemCommand <DataModelType, DataDetailViewModelType>(this);
            SaveCommand     = new SaveItemCommand <DataModelType, DataDetailViewModelType>(this);

            Debug.Assert(_model.DataModel != null);
            _viewModelCreator = viewModelCreator;
            _itemModelCreator = itemModelCreator;
            DataViewModel     = _viewModelCreator.CreateDataDetailViewModel(_model.DataModel);
        }
示例#2
0
 public DetailItemViewModelTimer(IItemModelAdapter <DataModelType> model,
                                 IDataDetailViewModelCreator <DataModelType, DataDetailViewModelType> viewModelCreator,
                                 IItemModelAdapterCreator <DataModelType> itemModelCreator, int updateInterval = 5) :
     base(model, viewModelCreator, itemModelCreator)
 {
     timer          = new System.Windows.Threading.DispatcherTimer();
     timer.Tick    += Timer_Tick;
     timer.Interval = new TimeSpan(0, 0, updateInterval);
     timer.Start();
 }