Ошибка конвертера значений WPF GridViewColumn - PullRequest
1 голос
/ 17 апреля 2011

Может кто-нибудь сказать мне, в чем разница между этими двумя подходами, чтобы ваш GridViewColumn отображался как изображение в соответствии со значением поля db.

Первый

<Image Source="{Binding Path=ActionId, Mode=OneWay, Converter={StaticResource local:ActionIdConverter}}" />

Второй

<Image>
        <Image.Source>
                <Binding Path="ActionId" Mode="OneWay">
                        <Binding.Converter>
                                <local:ActionIdConverter />
                        </Binding.Converter>
                </Binding>
        </Image.Source>
</Image>

Второй работает нормально, но первый дает

Укажите значение на 'System.Windows.Markup.StaticResourceHolder' бросил исключение. Внутреннее сообщение об исключении Не удается найти ресурс с именем «Местный: ActionIdConverter. Ресурс имена чувствительны к регистру.

но тот же конвертер работает во втором

Есть идеи, что мне не хватает в моем первом подходе?

Спасибо и С уважением, Аднан

1 Ответ

0 голосов
/ 17 апреля 2011

Ваш второй подход создает новый экземпляр ActionIdConverter, тогда как первый ищет его в ресурсах.

Чтобы исправить первый фрагмент кода, добавьте конвертер в родительский элемент Resources sectionзатем укажите его, используя ключ, который вы ему дали, например:

<Window.Resources>
  <local:ActionIdConverter x:Key="ActionIdConverter" />
</Window.Resources>
<Image Source="{Binding Path=ActionId, Mode=OneWay, Converter={StaticResource ActionIdConverter}}" />

Таким образом, вы можете повторно использовать один и тот же экземпляр преобразователя в нескольких местах, а не каждый раз создавать новый.

...