//protected override void OnItemCreated(Entity entity) //{ // base.OnItemCreated(entity); // var log = entity as FinanceLog; // log.Date = DateTime.Today; //} protected override void OnUIGenerated(ControlResult ui) { var defaultPersons = RF.Find <Person>().GetAll().Cast <Person>() .Where(t => t.IsDefault).Select(t => t.Name).ToArray(); var defaultTags = RF.Find <Tag>().GetAll().Cast <Tag>() .Where(t => !t.NotUsed && t.IsDefault).Select(t => t.Name).ToArray(); var log = new FinanceLog { Users = string.Join(",", defaultPersons), Tags = string.Join(",", defaultTags) }; var main = ui.MainView as DetailLogicalView; main.Current = log; main.Control.Loaded += (s, e) => (main.PropertyEditors[0].Control as FrameworkElement).Focus(); //暂时通过以下方式为按钮添加键盘事件。 main.Control.KeyDown += (s, e) => { if (Keyboard.Modifiers == ModifierKeys.Control && e.Key == Key.Enter) { //移除焦点,提交更改 var element = Keyboard.FocusedElement as FrameworkElement; if (element != null) { element.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next)); } main.Commands[typeof(ContinueAddFinanceLog)].TryExecute(); } }; var listView = main.Relations["list"] as ListLogicalView; listView.DataLoader.LoadDataAsync(); listView.IsReadOnly = ReadOnlyStatus.ReadOnly; base.OnUIGenerated(ui); }
/// <summary> /// 在异步队列中,把手动输入的 Tag、Person 添加到数据库中。 /// </summary> /// <param name="log"></param> private static void SyncBasicData(FinanceLog log) { var userArray = log.Users.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); var tagArray = log.Tags.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); AsyncHelper.InvokeSafe(() => { var userRepo = RF.Concrete <PersonRepository>(); var users = userRepo.CacheAll().Concrete(); foreach (var userName in userArray) { var user = users.FirstOrDefault(u => u.Name == userName); if (user == null) { user = new Person { Name = userName }; userRepo.Save(user); } } var tagRepo = RF.Concrete <TagRepository>(); var tags = tagRepo.CacheAll().Concrete(); foreach (var tagName in tagArray) { var tag = tags.FirstOrDefault(u => u.Name == tagName); if (tag == null) { tag = new Tag { Name = tagName }; userRepo.Save(tag); } } }); }
public int IndexOf(FinanceLog entity) { return base.IndexOf(entity); }
public bool Contains(FinanceLog entity) { return base.Contains(entity); }
public void Add(FinanceLog entity) { base.Add(entity); }
public bool Remove(FinanceLog entity) { return base.Remove(entity); }
public void Insert(int index, FinanceLog entity) { base.Insert(index, entity); }