Ejemplo n.º 1
0
        public ReferencesControl(User user, TraitCategoryType category, int? intraCategoryID)
            : base(user, String.Format("References::{0}::{1}", category, intraCategoryID))
        {
            InitializeComponent();

            this.Category = category;
            this.IntraCategoryID = intraCategoryID.Value;

            txtRefType.Click += new RoutedEventHandler((source, e) => {
                var reftype = SelectRefType();
                if (!string.IsNullOrEmpty(reftype)) {
                    txtRefType.Text = reftype;
                }

            });

            txtReference.BindUser(user, LookupType.Reference);
            txtReference.ObjectSelected += new ObjectSelectedHandler(txtReference_ObjectSelected);

            var list = Service.GetReferenceLinks(category.ToString(), IntraCategoryID);
            _model = new ObservableCollection<RefLinkViewModel>(list.ConvertAll((rl) => {
                var vm = new RefLinkViewModel(rl);
                vm.DataChanged += new DataChangedHandler((changed) => {
                    RegisterUniquePendingChange(new UpdateRefLinkCommand(vm.Model, Category.ToString()));
                });
                return vm;
            }));

            gridRefLink.IsEnabled = false;

            lstReferences.ItemsSource = _model;
            lstReferences.SelectionChanged += new SelectionChangedEventHandler((source, e) => {
                if (!gridRefLink.IsEnabled) {
                    gridRefLink.IsEnabled = true;
                }
                gridRefLink.DataContext = lstReferences.SelectedItem;
            });
        }
Ejemplo n.º 2
0
        private void AddNewRefLink()
        {
            var refLinkType = SelectRefType();
            if (!string.IsNullOrEmpty(refLinkType)) {
                var data = new RefLink();
                data.RefLinkID = -1;
                data.RefLinkType = refLinkType;
                data.IntraCatID = IntraCategoryID;
                data.UseInReport = true;

                RegisterPendingChange(new InsertRefLinkCommand(data, Category.ToString()));

                var viewModel = new RefLinkViewModel(data);
                viewModel.RefCode = NextNewName("<New {0}>", _model, () => viewModel.RefCode);
                _model.Add(viewModel);

                viewModel.DataChanged += new DataChangedHandler((changed) => {
                    RegisterUniquePendingChange(new UpdateRefLinkCommand(viewModel.Model, Category.ToString()));
                });

                lstReferences.SelectedItem = viewModel;
                lstReferences.ScrollIntoView(viewModel);
            }
        }