XAML: свойство 'Ресурсы' установлено более одного раза - PullRequest
32 голосов
/ 06 августа 2010

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

Свойство 'Ресурсы' установлено более одного раза.

Вот мой 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>

Ответы [ 2 ]

70 голосов
/ 06 августа 2010

Свойство .Resources в Xaml является умным: оно имеет тип ResourceDictionary, но, если вы явно не поместите тег <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>
0 голосов
/ 06 августа 2010

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

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

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