public CraftWindow(Craft craft, Item item, Data data) : this() { _craft = craft; _data = data; Title = "Рецепт: " + item.Name; collectionControl.Init(craft.CraftItems); collectionControl.OnAdd = () => { var craftItem = new CraftItem(); var result = new CraftItemWindow(craftItem, data) { Owner = this }.ShowDialog() == true; if (result) { craft.Add(craftItem); TuneControls(); return(craftItem); } return(null); }; collectionControl.OnEdit = obj => { new CraftItemWindow((CraftItem)obj, data) { Owner = this }.ShowDialog(); TuneControls(); }; collectionControl.OnRemove = obj => { craft.Remove((CraftItem)obj); TuneControls(); return(true); }; collectionControl.OnConvert = obj => { return(((CraftItem)obj).ToString(data)); }; tbCount.Text = craft.Count.ToString(); cbProf.ItemsSource = data.Professions.OrderBy(p => p.ToString()); cbProf.SelectedItem = data.Professions.FirstOrDefault(p => p.Id == craft.ProfessionId); TuneControls(); }