이 주제에 관심이있는 사람은 누구나 : Combobox 및 Objectdataprovider를 사용하여 실행 해 보았습니다. "ItemsSource"는 구조체이지만 "SelectedItem"은 다른 곳에 쓰여 있습니다.
<!--resources-->
<ObjectDataProvider x:Key="StructValues"
MethodName="GetValues"
ObjectType="{x:Type local:MyStruct}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="local:MyStruct" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<ComboBox Margin="0,5"
VerticalAlignment="Center"
ItemsSource="{Binding Source={StaticResource StructValues}}"/>
그리고 이것은 구조체처럼 보이는 방법은 다음과 같습니다 : 는 여기있다
public struct MyStruct
{
public const string A = "A";
public const string B = "B";
public const string C = "C";
public static IEnumerable GetValues(Type type)
{
List<String> retVals = new List<string>();
FieldInfo[] fi = type.GetFields();
foreach (FieldInfo info in fi)
{
retVals.Add(info.Name);
}
return retVals;
}
}
당신은 구조체와 클래스의 차이를 알 수 있습니까? –