Синтаксис элемента XAML должен работать:
<maps:GeoBounds>
<maps:GeoBounds.Northeast>
<maps:Position Latitude="9" Longitude="9"/>
</maps:GeoBounds.Northeast>
</maps:GeoBounds>
Вы также можете написать TypeConverter, который преобразует из string
в Position
:
public class PositionConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return Position.Parse((string)value);
}
}
Зарегистрируйте его с помощью тип Position, подобный этому:
[System.ComponentModel.TypeConverter(typeof(PositionConverter))]
public struct Position
{
...
public static Position Parse(string positionString)
{
...
}
}
Теперь синтаксис атрибута, такой как
<maps:GeoBounds Northeast="9,9">
, передаст строку "9,9"
в метод Parse, где вы вернете соответствующий экземпляр Position.