Files
BeWoPlaner/BeWo/View/Controls/EnumComboBoxStyleSettings.cs
Waldi e8da1fdff7 BewoPlaner .Net Version 4.5 und Devexpress version 17....
plus RTF Dokumentation für HPH bersenbrueck unter ServiceRecord
und paar kleinigkeiten
2017-07-27 09:58:04 +02:00

87 lines
2.5 KiB
C#

using System;
using System.Linq;
using DevExpress.Xpf.Editors;
using System.Windows;
using DevExpress.Xpf.Editors.Themes;
using DevExpress.Xpf.Editors.Helpers;
using DevExpress.Xpf.Core;
using System.Windows.Controls;
using DevExpress.Xpf.Editors.Popups;
using System.Windows.Data;
using DevExpress.Xpf.Editors.Internal;
namespace BeWo.View.Controls
{
public class EnumComboBoxStyleSettings : BaseComboBoxStyleSettings
{
public Type EnumType
{
get;
set;
}
public override void ApplyToEdit(BaseEdit editor)
{
base.ApplyToEdit(editor);
var cb = editor as LookUpEditBase;
cb.ItemsSource = EnumHelper.GetEnumSource(EnumType, false);
cb.ItemTemplate = (DataTemplate)Application.Current.FindResource("whithAttributeItemTemplate");
cb.DisplayTextConverter = (IValueConverter)Application.Current.FindResource("enumToDescriptionConverter");
}
protected override Style GetItemContainerStyle(LookUpEditBase cb)
{
if (HasFlagsAttribute())
return (Style)cb.FindResource(new EditorListBoxThemeKeyExtension { ResourceKey = EditorListBoxThemeKeys.CheckBoxItemStyle, ThemeName = ThemeHelper.GetEditorThemeName(cb) });
return (Style)cb.FindResource(new EditorListBoxThemeKeyExtension { ResourceKey = EditorListBoxThemeKeys.DefaultItemStyle, ThemeName = ThemeHelper.GetEditorThemeName(cb) });
}
//protected override SelectionMode SelectionMode
//{
// get
// {
// return HasFlagsAttribute() ? SelectionMode.Multiple : SelectionMode.Single;
// }
//}
//protected override bool CloseOnMouseUp
//{
// get { return !HasFlagsAttribute(); }
//}
protected override bool ShowCustomItem(LookUpEditBase editor)
{
return HasFlagsAttribute();
}
protected override SelectionEventMode GetSelectionEventMode(ISelectorEdit ce)
{
if (HasFlagsAttribute())
return SelectionEventMode.MouseUp;
return !((LookUpEditBase)ce).AllowItemHighlighting ? SelectionEventMode.MouseDown : SelectionEventMode.MouseEnter;
}
public override PopupFooterButtons GetPopupFooterButtons(PopupBaseEdit editor)
{
return HasFlagsAttribute() ? PopupFooterButtons.OkCancel : PopupFooterButtons.None;
}
bool HasFlagsAttribute()
{
var fa = (FlagsAttribute[])EnumType.GetCustomAttributes(typeof(FlagsAttribute), true);
var c = fa.Count();
return c != 0;
}
protected override SelectionMode GetSelectionMode(LookUpEditBase editor)
{
throw new NotImplementedException();
}
}
}