3
A
回答
3
根据您的要求,可能会采取一系列不同的方法。以下是非常通用的解决方案。
创建一个值转换器,一个字符串转换为一个类型: -
public class StringToTypeConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return Type.GetType((string)value);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
将这个转换器中的目标对象具有可见性资源字典的一个实例,说的App.xaml: -
<Application.Resources>
<local:StringToTypeConverter x:Key="STT" />
</Application.Resources>
现在在XAML中,你可以赋值给这样的特性: -
<TextBox Text="{Binding Source='System.Int32,mscorlib', Converter={StaticResource STT}}" />
2
另一种方法是用类型转换器来装饰属性本身。
定义这样的类型转换器:
public class StringToTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType.IsAssignableFrom(typeof (string));
}
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
{
var text = value as string;
return text != null ? Type.GetType(text) : null;
}
}
装饰你的财产是这样的:
[TypeConverter(typeof(StringToTypeConverter))]
public Type MessageType
{
get { return (Type) GetValue(MessageTypeProperty); }
set { SetValue(MessageTypeProperty, value); }
}
,然后在XAML,你可以这样做:
<MyObject MessageType="My.Fully.Qualified.Type"/>
相关问题
- 1. 如何在XAML WPF中创建强制性依赖项属性
- 2. 无法创建集合类型依赖项属性
- 3. 如何扩展此依赖项属性示例以重新创建DockPanel.Dock =“Top”类的依赖项属性?
- 4. 如何将依赖项属性定义为引用类型?
- 5. 使用XAML绑定依赖项属性
- 6. UWP“类型”依赖项属性
- 7. 如何创建'Type'类型的附属属性?
- 8. 如何查找公开依赖项属性的给定成员属性的依赖项属性标识符?
- 9. XAML - 逗号分隔的依赖项属性
- 10. 如何将属性分配给属性
- 11. 绑定到XAML派生类中定义的依赖项属性
- 12. 如何创建绑定的依赖项属性
- 13. 创建泛型类型依赖于其他类型的C#
- 14. 如何创建按钮内容,如依赖项属性
- 15. PHP获得css类并将其分配给rel属性
- 16. 如何将模型实例分配给django中的类属性
- 17. 如何将属性传递给依赖项?
- 18. 如何在XAML中分配Control类型的属性 - 错误
- 19. 如何将EntityCollection属性分配给其他属性?
- 20. 如何将PropertyChangedCallback添加到基类的依赖项属性?
- 21. 依赖类型创建产品属性表
- 22. 如何创建只读依赖项属性?
- 23. 如何使用MVVM在Silverlight中创建依赖项属性?
- 24. 如何为文本框创建依赖项属性
- 25. 如何将依赖项属性绑定到XAML中的任何内容
- 26. XAML - 在WinRT中创建依赖项属性后的运行时异常
- 27. 如何创建新端口并将其分配给打印机
- 28. 依赖属性上的XAML绑定
- 29. 如何将嵌套在类中的枚举分配给XAML属性?
- 30. 依赖于其他属性的依赖属性
我有一个例外当我使用自定义类型时,如果我没有指定版本,但你的解决方案似乎是我们能做的最好的:( – 2010-03-17 09:00:00
@Nicolas Dorier:对于自定义类型,请尝试仅使用类型名称(而不是添加版本号,删除程序集名称)。如果自定义类型与使用此技术的Xaml/Usercontrol在同一个程序集中,则应该可以工作。 – AnthonyWJones 2010-03-17 09:26:39