一個工作一輪真的取決於你爲什麼要包括在XAML原始的Guid擺在首位。
由於Xaml無法知道如何將元素的內容轉換爲Guid結構的實例,因此無法按照您嘗試的方式使用sys:Guid
。事實上,你不能包括一個空的sys:Guid
,雖然我不知道你爲什麼不能這麼做(不是說這樣做永遠不會有用)。
但是,如果您試圖爲您控制的類型的實例上的屬性賦值,則可以使用類型轉換器來處理該屬性。首先添加GuidConverter
到您的項目: -
using System;
using System.ComponentModel;
using System.Globalization;
namespace SilverlightApplication1
{
public class GuidConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
return destinationType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return new Guid((string)value);
}
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
return ((Guid)value).ToString("", culture);
}
}
}
現在有TypeConverter
屬性裝飾你的類型的屬性:
[TypeConverter(typeof(GuidConverter))]
public Guid MyGuidValue {get; set; }
現在在XAML中,你可以這樣做: -
<local:MyType MyGuidValue="F16095D1-1954-4C33-A856-2BDA87DFD371" />
謝謝!我會試試這個! – Sai 2009-12-16 11:47:25