コード例 #1
0
ファイル: DocumentBinder.cs プロジェクト: 569550384/Rafy
        private void CreateEnumItems(EnumControl control, IEnumerable newItems)
        {
            foreach (EnumItemElement newItem in newItems)
            {
                var item = new EnumItem();
                item.DataContext = newItem;

                SetBinding(item, EnumItem.ItemNameProperty, "Name");
                SetBinding(item, EnumItem.LabelProperty, "Label");
                //SetBinding(item, EnumItem.ValueProperty, "Value");

                control.Items.Add(item);
            }
        }
コード例 #2
0
ファイル: DocumentBinder.cs プロジェクト: 569550384/Rafy
        private EnumControl CreateEnumControl(EnumElement type)
        {
            var control = new EnumControl();
            control.DataContext = type;

            BindBlockControl(control);

            CreateEnumItems(control, type.Items);
            type.Items.CollectionChanged += (o, e) =>
            {
                var oldItems = e.OldItems ?? type.Items.PopClearedItems();
                if (oldItems != null)
                {
                    foreach (EnumItemElement oldItem in oldItems)
                    {
                        var property = control.Items.First(i => i.DataContext == oldItem);
                        control.Items.Remove(property);
                    }
                }
                if (e.NewItems != null)
                {
                    CreateEnumItems(control, e.NewItems);
                }
            };

            return control;
        }