2016-06-02 9 views
1

예를 들어, 내 xaml추가 값 : 정적

<x:Array Type="sys:String" x:Key="Statuses"> 
    <sys:String>Ok</sys:String> 
    <sys:String>Warning</sys:String> 
    <sys:String>Error</sys:String> 
</x:Array> 

내부 문자열의 배열을 사용해야하지만 내가 x:Static를 통해 항목을 assing에있는 경우. 가능한가? 다음 코드는 작동하지 않습니다.

<x:Array Type="system:String" x:Key="Statuses"> 
    <sys:String> 
     <Binding="{x:Static model:Status.Ok}" /> 
    </sys:String> 
    <sys:String> 
     <Binding="{x:Static model:Status.Warning}" /> 
    </sys:String> 
</x:Array> 

public enum Status 
{ 
    Ok, 
    Warning, 
    Error 
} 

그래서 제 질문은

x:Static 나는이 방법

[ContentProperty("Values")] 
[ContentWrapper(typeof(Collection<State>))] 
public class StateCollection 
{ 
    private const string DefaultKeySeparator = ","; 
    private string _keySeparator; 
    public string KeySeparator 
    { 
     get { return _keySeparator ?? DefaultKeySeparator; } 
     set { _keySeparator = value; } 
    } 
    private Collection<State> _values = new Collection<AlternationConverterItem>(); 
    public Collection<State> Values 
    { 
     get { return _values; } 
     set { _values = value; } 
    } 
} 

public sealed class State 
{ 
    public Status Status { get; set; } 
    public String Description { get; set; } 
} 

<myNamespace:StateCollection x:Key="MyCollection" KeySeparator="-"> 
    <myNamespace:State Status="{x:Static model:RestoreObjectStatus.Ok}" Description="{StaticResource Description1}" /> 
    <myNamespace:State Status="{x:Static model:RestoreObjectStatus.Warning}" Description="{StaticResource Description2}" /> 
    <myNamespace:State Status="{x:Static model:RestoreObjectStatus.Error}" Description="{StaticResource Description3}" /> 
</myNamespace:AlternationConverter2> 

을 알고 사용 xaml 내에서 배열을 초기화하지만 문자열의 배열에 대해 동일한 방법을 적용하는 뜨거운 kwni하지 않는 방법입니다 나는 위의 글을 썼다. 내가 successefully x:Static Member=을 사용했습니다

+0

는 Items' 속성에 액세스 세터가없는 '것 때문에 불행하게도 당신이 방법으로 예전처럼 캔트 사용 객체 데이터 공급자 ... HTTP : // 유래. com/questions/6145888/enum-to-a-combobox-control-in-wpf –

+0

@ M.kazemAkhgary 그리고 ContentProperty 및 ContentWrapper가이 문제를 해결할 수 없었습니까? – isxaker

답변

3

는 :

<x:Array x:Key="SiteOkKey" Type="system:Object"> 
    <x:Static Member="model:RestoreObjectStatus.Ok" /> 
    <x:Static Member="core:RestoreObjectTypes.Site" /> 
</x:Array>