Подтвердить что ты не робот

XAML: свойство "Ресурсы" установлено более одного раза

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

Свойство "Ресурсы" установлено больше чем один раз.

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

Ответ 1

Свойство .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>

Ответ 2

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

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