Я попал в странную ситуацию, в которой перечисление, определенное в ссылочной сборке (dll, являющееся проектом в том же решении), не найдено для использования в моем XAML. Тот же самый enum найден кодом C# в моей модели представления.
Когда я копирую файл определения enum в проект, ссылки XAML работают, но ссылки C#, конечно, жалуются на дублированное определение. На данный момент я не знаю, как решить эту проблему. Любые идеи? Известные исправления?
Справочная информация:
- Ссылочная сборка содержит перечисление, которое используется для поддержки радиогруппы XAML, как рекомендовано здесь .
- Я нашел это , но это не относится к моей ситуации. Перечисление в ссылочной сборке само по себе.
- Ошибка выдается в первом параметре связывания {x: stati c} в xaml (пример ниже) и гласит: «Не удается найти тип» MyEnum '. Обратите внимание, что имена типов чувствительны к регистру. "
- Пожалуйста, извините за любые незначительные ошибки в приведенном ниже коде, я набрал его вручную, так как не могу раскрыть производственный код моей компании.
EnumRadioGroupWindow.xaml
<Window x:Class="XamlWindow.EnumRadioGroupWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:XamlWindow"
xmlns:enum="clr-namespace:EnumLibrary">
<StackPanel>
<StackPanel.Resources>
<local:ComparisonToBoolConverter x:Key="ComparisonToBool"/>
</StackPanel.Resources>
<RadioButton Content="Item One" IsChecked="{Binding Path=InstanceOfMyEnum, Mode=OneWay, Converter={StaticResource ComparisonToBool}, ConverterParameter={x:Static enum:MyEnum.One}}"/>
<RadioButton Content="Item Two" IsChecked="{Binding Path=InstanceOfMyEnum, Mode=OneWay, Converter={StaticResource ComparisonToBool}, ConverterParameter={x:Static enum:MyEnum.Two}}"/>
<RadioButton Content="Item Three" IsChecked="{Binding Path=InstanceOfMyEnum, Mode=OneWay, Converter={StaticResource ComparisonToBool}, ConverterParameter={x:Static enum:MyEnum.Three}}"/>
</StackPanel>
</Window>
MyEnum.cs (в отдельной сборке, на которую ссылается проект WPF)
namespace EnumLibrary
{
public enum MyEnum
{
One,
Two,
Three
}
}