C # WPF: получение пользовательской ошибки привязки (свойство конвертера неизвестно) после восстановления проекта из SourceSafe - PullRequest
0 голосов
/ 25 января 2019

Я работаю над этим проектом C # уже несколько месяцев, и у него всегда был собственный класс привязки, чтобы сделать некоторые свойства немного быстрее:

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, и все выглядит хорошо и правильно, весь код идентичен серверу сборки, но на моем сервере разработки я не могу скомпилировать код. Я получаю сообщение об ошибке:

Ошибка Неизвестное свойство «Конвертер» для типа «MS.Internal.Markup.MarkupExtensionParser + UnknownMarkupExtension», обнаруженное при анализе расширения разметки. Строка 39, позиция 114.

Я получаю ту же ошибку для каждого, кто вызывает дополнительное свойство, кроме просто Path.

т.е. -

Ошибка Неизвестное свойство 'FallbackValue' для типа 'MS.Internal.Markup.MarkupExtensionParser + UnknownMarkupExtension', обнаруженное при анализе расширения разметки.

и

Ошибка Неизвестное свойство 'TargetNullValue' для типа 'MS.Internal.Markup.MarkupExtensionParser + UnknownMarkupExtension', обнаруженное при анализе расширения разметки.

Etc ...

Мне, конечно, пришлось переустановить Visual Studio 2017 CE, и я вернулся на ту же версию, на которой была до замены жесткого диска, потому что я всегда обновлял VS, но, похоже, что-то еще могло отсутствовать или отсутствовать устаревшего или, возможно, несовпадающего или устаревшего пакета компилятора NuGet или чего-то еще, потому что в противном случае не имеет смысла, что сам код плох, когда он работал в течение нескольких месяцев, и все еще продолжает работать и нормально компилироваться на машине сборки.

Кто-нибудь знает, что я могу проверить, что может помочь мне в этом? Единственная альтернатива - вернуться через весь код и избавиться от пользовательской привязки (если это даже истинная причина), но на это уйдут дни, потому что в этом проекте тысячи привязок.

Спасибо!

1 Ответ

0 голосов
/ 25 января 2019

Хорошо.Как и предполагалось, это была не та проблема, которая описана вообще.В моем случае оказалось, что одна из форм ссылалась на сборку (PresentationFramework.Classic), которая по какой-то причине не была добавлена ​​в проект и вызвала распространяющийся набор ошибок из-за того, что она не могла скомпилироваться.сверху вниз.

 xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic"

Боль в заднице отладки WPF может быть иногда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...