コード例 #1
0
        /// <summary>
        /// Creates the FieldViewModel responsible for rendering this column and binds it to the provided row.
        /// </summary>
        protected override FieldViewModelBase CreateFieldViewModel(GridRowViewModel row)
        {
            var viewModel = new ReadOnlyTextFieldViewModel(Header);

            viewModel.IsRightAligned = IsRightAligned;
            viewModel.SetBinding(ReadOnlyTextFieldViewModel.TextProperty, new ModelBinding(row, SourceProperty, ModelBindingMode.OneWay, _converter));
            return(viewModel);
        }
コード例 #2
0
        /// <summary>
        /// Creates the FieldViewModel responsible for rendering this column and binds it to the provided row.
        /// </summary>
        protected override FieldViewModelBase CreateFieldViewModel(GridRowViewModel row)
        {
            if (IsReadOnly)
            {
                var textViewModel = new ReadOnlyTextFieldViewModel(Header);
                textViewModel.IsRightAligned = true;
                textViewModel.SetBinding(ReadOnlyTextFieldViewModel.TextProperty, new ModelBinding(row, SourceProperty, ModelBindingMode.OneWay, _integerConverter));
                return(textViewModel);
            }

            var viewModel = new IntegerFieldViewModel(Header, _metadata);

            viewModel.BindValue(row, SourceProperty, ModelBindingMode.TwoWay);
            return(viewModel);
        }
コード例 #3
0
        /// <summary>
        /// Creates the FieldViewModel responsible for rendering this column and binds it to the provided row.
        /// </summary>
        protected override FieldViewModelBase CreateFieldViewModel(GridRowViewModel row)
        {
            if (IsReadOnly)
            {
                var textViewModel = new ReadOnlyTextFieldViewModel(Header);
                textViewModel.SetBinding(ReadOnlyTextFieldViewModel.TextProperty,
                                         new ModelBinding(row, SourceProperty, ModelBindingMode.OneWay, new DelegateConverter(id => _lookupLabelFunction((int)id), null)));
                return(textViewModel);
            }

            var viewModel = new AutoCompleteFieldViewModel(Header, _metadata, _searchFunction, _lookupLabelFunction);

            viewModel.IsDisplayTextDifferentFromSearchText = IsDisplayTextDifferentFromSearchText;

            // bind the property through to the data model
            row.SetBinding(_stringProperty, new ModelBinding(row.Model, _stringProperty));

            // bind text first so selection binding will cause it to be updated
            viewModel.SetBinding(AutoCompleteFieldViewModel.TextProperty, new ModelBinding(row, _stringProperty, ModelBindingMode.TwoWay));
            viewModel.BindSelection(row, SourceProperty, ModelBindingMode.TwoWay);

            return(viewModel);
        }
コード例 #4
0
        /// <summary>
        /// Creates the FieldViewModel responsible for rendering this column and binds it to the provided row.
        /// </summary>
        protected override FieldViewModelBase CreateFieldViewModel(GridRowViewModel row)
        {
            if (IsReadOnly)
            {
                var textViewModel = new ReadOnlyTextFieldViewModel(Header);
                textViewModel.IsRightAligned = true;
                textViewModel.SetBinding(ReadOnlyTextFieldViewModel.TextProperty, new ModelBinding(row, SourceProperty, ModelBindingMode.OneWay, _dateConverter));
                return(textViewModel);
            }

            var viewModel = new DateFieldViewModel(Header, _metadata);

            if (SourceProperty.PropertyType == typeof(Date))
            {
                viewModel.BindDate(row, SourceProperty, ModelBindingMode.TwoWay);
            }
            else
            {
                viewModel.SetBinding(DateFieldViewModel.DateTimeProperty, new ModelBinding(row, SourceProperty, ModelBindingMode.TwoWay));
            }

            return(viewModel);
        }