我在一個dll文件MicroMVVM中有一個EnumToBool轉換器類。我想在我的WPF應用程序的XAML中導入並創建這個類的資源。以下是我在XAML中的聲明:從dll導入轉換器到XAML
<Window x:Class="WpfMVVM.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:WpfMVVM"
xmlns:micro="clr-namespace:MicroMVVM;assembly=MicroMVVM"
Title="MainWindow" Height="350" Width="525" ContentRendered="Window_ContentRendered">
<Window.DataContext>
<!-- Declaratively create an instance of our SongViewModel -->
<local:SabrixQAViewModel />
</Window.DataContext>
<Window.Resources>
<micro:EnumToBoolExtension x:Key="EnumToBool" />
</Window.Resources>
我在「clr-namespace」中收到錯誤。錯誤是「未定義的CLR命名空間。'clr命名空間'URI是指未包含在程序集中的命名空間'MicroMVVM'。
我在我的解決方案中添加了MicroMVVM.dll的引用,並且正在使用。其他類視圖模型的dll不過,我試圖在XAML中使用它得到錯誤請幫助
以下是轉換器類內部結構是如何MicroMVVM:
namespace MicroMvvm
{
public enum ValidationMode
{
GSS,
Digital
}
[ValueConversion(typeof(bool), typeof(Enum))] //This is converting boolean value to a value in Enum
public class EnumToBoolExtension : MarkupExtension, IValueConverter
{
#region IValueConverter
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return parameter.Equals(value);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((bool)value) == true ? parameter : DependencyProperty.UnsetValue;
}
#endregion
#region MarkupExtension
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
#endregion
}
}
驗證器的命名空間。 – Jawahar
我也包含了Converter類,名字空間是正確的。請看一下。 –
我是否需要在AssemblyInfo.cs中添加程序集MicroMVVM才能使用XAML? –