XAML: свойство 'Resources' установлено несколько раз

Я получаю следующую ошибку:

Свойство 'Resources' установлено несколько раз.

Вот мой XAML:

<UserControl.Resources>
    <!--Resource dictionaries for framework stuff-->
    <ResourceDictionary>
        <Style x:Key="MultiLineTextBox" TargetType="TextBox">
            <Setter Property="BorderThickness" Value="0"/>
            <Setter Property="TextWrapping" Value="WrapWithOverflow"/>
        </Style>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/View;component/Common/ResourceDictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

    <!--Convertors needed for proper display-->
    <c:CollapsedIfNegative x:Key="CollapseIfNegative"/>
    <c:VisibleIfNegative x:Key="MakeVisibleIfNegative"/>
    <c:ErrorCodeToString x:Key="ConvertErrorCodeToString"/>
</UserControl.Resources>
33
задан Adam S 6 August 2010 в 16:22
поделиться

2 ответа

В .Свойство Resources в Xaml продумано: оно имеет тип ResourceDictionary , но, если вы явно не поместите тег вокруг его содержимого, компилятор волшебным образом примет его за ты. Вот почему обычно можно просто положить кисти прямо в разметку.

Однако вы начали с добавления своего собственного ResourceDictionary - который, как я подозреваю, предотвратил это автоматическое поведение - и теперь компилятор думает, что вы пытаетесь установить более одного значения. Если вы переписываете так, вы должны получить результат, который вам нужен:

<UserControl.Resources>
    <!--Resource dictionaries for framework stuff-->
    <ResourceDictionary>
        <!--Convertors needed for proper display-->
        <!-- move this INSIDE the ResourceDictionary tag -->
        <c:CollapsedIfNegative x:Key="CollapseIfNegative"/>
        <c:VisibleIfNegative x:Key="MakeVisibleIfNegative"/>
        <c:ErrorCodeToString x:Key="ConvertErrorCodeToString"/>


        <Style x:Key="MultiLineTextBox" TargetType="TextBox">
            <Setter Property="BorderThickness" Value="0"/>
            <Setter Property="TextWrapping" Value="WrapWithOverflow"/>
        </Style>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/View;component/Common/ResourceDictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>
74
ответ дан 27 November 2019 в 17:57
поделиться

На самом деле, просто скопировать ваш XAML и вставить его в мои собственные сборки UserControl (при условии, что я добавлю классы конвертера, на которые есть ссылки).

Вы видите другие ошибки в своем списке ошибок или это единственная? Иногда, если возникает другая ошибка (например, неспособность найти ресурс), это может привести к возникновению другой ошибки компиляции.

0
ответ дан 27 November 2019 в 17:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: