不能转换字符串'X'System.Boolean'类型的对象

本文关键字:类型 对象 Boolean System 转换 不能 字符串 | 更新日期: 2023-09-27 17:49:37

我已经创建了一个AttachedProperty,它在测试项目中工作得很好,但在较大的项目中,附加属性在一个项目中定义并在其他项目中使用,我得到这个奇怪的错误:

<>之前System.Windows.Markup.XamlParseException发生消息=无法转换属性"IsTextDragSource"中的字符串"False"到'System.Boolean'类型的对象。对象System.Windows出错。在标记文件中的HierarchicalDataTemplate"ServerMonitoringModule;组件/视图/清单/jobbrowser/jobreportdetailsview.xaml"第147行,位置84。源= PresentationFrameworkLineNumber=147 LinePosition=84 NameContext=Resources加:在System.Windows.Markup.XamlParseException。抛出异常(String message, Exception innerException, Int32 lineNumber, Int32 linePosition, Uri baseUri, XamlObjectIds currentXamlObjectIds, XamlObjectIds contextXamlObjectIds, Type objectType)在System.Windows.Markup.XamlParseException。抛出异常(ParserContext, ParserContext, Int32 lineNumber, Int32 linePosition,字符串消息,异常innerException)在System.Windows.Markup.XamlTypeMapper。ParseProperty(Object targetObject, Type propType, String propName, Object dpOrPiOrFi, ITypeDescriptorContext, typeContext, ParserContext, ParserContext, String value, Int16 converterTypeId)在System.Windows.Markup.OptimizedTemplateContent。ParseDependencyProperty(String attributevalue, Int16 attributeId, Int16 converterTypeId, dependencyproperty&dp, object&propertyvalue)在System.Windows.Markup.OptimizedTemplateContent。LookForShareableRecord(BamlRecord, BamlRecord, DependencyProperty& dp, Object& dpValue)在System.Windows.Markup.OptimizedTemplateContent。ReadPotentiallyShareableRecord (BamlRecord BamlRecord)在System.Windows.Markup.OptimizedTemplateContent。读取记录(BamlRecord BamlRecord)…之前

报告错误的行:

<TextBlock Text="{Binding Text}" dscb:TextDragHelper.IsTextDragSource="False"/>

和属性的定义:

public class TextDragHelper : DependencyObject
{
    public static readonly DependencyProperty IsTextDragSourceProperty =
        DependencyProperty.RegisterAttached("IsTextDragSource",
            typeof(bool), typeof(TextDragHelper),
            new FrameworkPropertyMetadata(OnDragSourceAdvisorChanged));

有没有人遇到过这个问题或有解决方案?

不能转换字符串'X'System.Boolean'类型的对象

谢谢- BoltClock -你没有回答这个问题,但我看了我的源代码,发现我的setter方法是:

public static void SetIsTextDragSource(DependencyObject source, object value)
{
    source.SetValue(IsTextDragSourceProperty, value);
}

虽然这个在某种程度上在单个项目解决方案中工作,但在多项目解决方案中却没有。

public static void SetIsTextDragSource(DependencyObject source, bool value)
{
    source.SetValue(IsTextDragSourceProperty, value);
}