Sai*_*Sai 2 silverlight silverlight-3.0
我有一个类似的问题 - Silverlight xaml是否支持字节数据类型.silverlight xaml是否支持Guid数据类型.我试图在我的xaml中设置Guid,这是c#类库中声明的属性.这可能吗?我试过用
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Run Code Online (Sandbox Code Playgroud)
和使用
<sys:Guid>F16095D1-1954-4C33-A856-2BDA87DFD371</sys.Guid>
Run Code Online (Sandbox Code Playgroud)
但那不行!
请建议是否有解决方法.
在此先感谢
Sai
一轮工作将真正取决于你为什么要首先在Xaml中包含原始Guid.
您不能sys:Guid以您尝试的方式使用,因为Xaml无法知道如何将元素的内容转换为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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在用TypeConverter属性装饰你的类型的属性:
[TypeConverter(typeof(GuidConverter))]
public Guid MyGuidValue {get; set; }
Run Code Online (Sandbox Code Playgroud)
现在你的xaml你可以这样做: -
<local:MyType MyGuidValue="F16095D1-1954-4C33-A856-2BDA87DFD371" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1284 次 |
| 最近记录: |