For example, I have to use array of string inside my 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>
But what if I have to assing items via x:Static. Is it possible ? Following code doesn't work.
<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
}
So my question is how to initialize array within xaml using x:Static
I know this approach
[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>
But I don't kwni hot to apply the same way for array of string I've writen above.
Itemsproperty does not have accessible setter so unfortunately you cant use object data provider like used in this way... stackoverflow.com/questions/6145888/…