CheckBoxList с несколькими значениями, привязанными к одному перечислению флага

StackOverflow https://stackoverflow.com/questions/634911

Вопрос

У меня есть FormView (связанный с ObjectDataSource), который содержит CheckBoxList, который я хотел бы привязать к одному свойству базового объекта, который является Enum с примененным к нему атрибутом FlagsAttribute. Привязка к свойству SelectedValue всегда дает мне ПЕРВОЕ выбранное значение из списка в качестве значения свойства. Кто-нибудь знает, как обойти это, не переопределяя методы Вставка или Обновление и вручную получая значения из списка флажков и вставляя его в параметры источника данных? Пример кода ниже того, что я пытаюсь сделать ...

<asp:FormView runat="server" ID="MyFormView" DataSourceID="MyDataSource">
   <InsertItemTempate>
      <asp:CheckBoxList runat="server" ID="MyCbl" SelectedValue='<%# Bind("MyProperty") %>'>
         <asp:ListItem Text="Choice 1" Value="ChoiceOne"></asp:ListItem>
         <asp:ListItem Text="Choice 2" Value="ChoiceTwo"></asp:ListItem>
      </asp:CheckBoxList>
   </InsertItemTemplate>
</asp:FormView>
<asp:ObjectDataSource runat="server" ID="MyDataSource" TypeName="MyClass" ...></asp:ObjectDataSource>

За кулисами мой объект объявлен так ...

public class MyClass
{
   public MyEnum MyProperty { get; set; }
}

[Flags()]
public Enum MyEnum
{
   ChoiceOne = 1,
   ChoiceTwo = 2
}
Это было полезно?

Решение

Вам нужно будет перебирать коллекции Items и создавать значения enum оттуда.

Поиск в Google по запросу FlaggedEnumTypeConverter также должен быть полезным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top