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); } }
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; }); }