Привязка WPF bru sh вызывает ошибку маршаллинга - PullRequest
0 голосов
/ 29 мая 2020

Я очень сбит с толку, поскольку во время выполнения я получаю эту ошибку: приложение вызвало интерфейс, который был упорядочен для другого потока. (0x8001010E (RPC_E_WRONG_THREAD)) '

У меня есть объект on, который имеет:

            <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <TextBlock
                Grid.Column="0"
                FontFamily="Segoe MDL2 Assets"
                Foreground="{Binding ImageColor, Mode=OneWay}"
                Text="{Binding ImageSrc, Mode=OneWay}" />
            <TextBlock
                Grid.Column="1"
                VerticalAlignment="Center"
                Text="{Binding VisitDescr, Mode=OneWay}" />
        </Grid>

в классе, который у меня есть

    public string ImageSrc
    {
        get
        {
            switch (Type)
            {
                case "c1":
                    return "\xE8B9";
                    break;
                default:
                    return "\xE8A5";
                    break;
            }
        }
    }

    public Brush ImageColor
    {
        get
        {
            switch (Type)
            {
                case "c1":
                    return new SolidColorBrush(Colors.MediumOrchid);
                    break;
                case "c2":
                    return new SolidColorBrush(Colors.DarkOrchid);
                default:
                    return new SolidColorBrush(Colors.Red);
                    break;
            }
        }
    }

Изображение возвращается без каких-либо ошибка, но цвет генерирует ошибку и НЕ изменяется.

Как это возможно, я получаю упорядоченную ошибку?

1 Ответ

0 голосов
/ 29 мая 2020

Я обнаружил проблему ... она использовала рабочую библиотеку. Я обновил его до:

using System.Windows.Media;

и теперь работает. Но почему он получил ошибку преобразования типов, а не маршалинг?

...