我已经在这个 C# 项目上工作了几个月,它总是有一个自定义绑定(bind)类,只是为了让一些属性更快一点:
namespace AutoLogic_GT
{
public class BindingEx : Binding
{
public BindingEx()
{
IsAsync = true;
}
}
public class BindingEx2Way : Binding
{
public BindingEx2Way()
{
Mode = BindingMode.TwoWay;
}
}
public class BindingExReadOnly : Binding
{
public BindingExReadOnly()
{
Mode = BindingMode.OneWay;
}
}
}
我在我的 XAML 代码中使用以下命令调用它:
<UserControl.Resources>
<local:BoolValueConverter x:Key="boolConverter" />
</UserControl.Resources>
<CheckBox Grid.Column="1" Grid.Row="1" Style="{StaticResource BasicCheckBox}" VerticalAlignment="Center" IsChecked="{local:BindingEx Path=DsBuyer.FirstTimeBuyer, TargetNullValue=False, Converter={StaticResource boolConverter}}" />
转换器代码也很简单:
public sealed class BoolValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.ToBool();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.ToBool();
}
}
它一直运行良好,即使在我的构建机器上,它仍然运行良好,但就在昨天,我不得不更换硬盘驱动器并从 TFS 下载所有最新的源代码,一切看起来都很好,所有代码都与构建服务器,但在我的开发服务器上,我无法编译代码。我不断收到错误:
Error Unknown property 'Converter' for type 'MS.Internal.Markup.MarkupExtensionParser+UnknownMarkupExtension' encountered while parsing a Markup Extension. Line 39 Position 114.
除了 Path 之外,每个调用其他属性的人都会遇到同样的错误。
IE。 -
Error Unknown property 'FallbackValue' for type 'MS.Internal.Markup.MarkupExtensionParser+UnknownMarkupExtension' encountered while parsing a Markup Extension.
和
Error Unknown property 'TargetNullValue' for type 'MS.Internal.Markup.MarkupExtensionParser+UnknownMarkupExtension' encountered while parsing a Markup Extension.
ETC...
我当然必须重新安装 Visual Studio 2017 CE,我又回到了更换 HDD 之前的同一个版本,因为我总是让 VS 保持最新,但似乎还有其他东西可能丢失或过时,或者可能是不匹配或过时的 NuGet 编译器包或其他原因,因为如果代码本身在几个月前工作并且仍然可以继续工作并在构建机器上正常编译时,代码本身就是不好的,这没有任何意义。
任何人都知道我可以检查什么可能会让我继续这样做?唯一的选择是返回所有代码并摆脱自定义绑定(bind)(如果这甚至是真正的原因),但这需要几天时间才能完成,因为这个项目中有数千个绑定(bind)。
谢谢!
最佳答案
好的。正如怀疑的那样,这根本不是描述的问题。在我的情况下,事实证明其中一个表单引用了一个程序集(PresentationFramework.Classic),该程序集由于某种原因没有添加到项目中,并且由于它无法编译而导致传播错误集自上而下。
xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic"
WPF 调试有时会让人头疼。
关于C# WPF : Getting Custom Binding Error (Converter Property Unknown) After Restoring Project from SourceSafe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54356891/