コンバーターには何もありません。DataContext
たとえあなたIValueConverter
がから派生しDependencyObject
、Taggerがあなたであるとしても、、またはDependencyProperty
を使用してそれをバインドすることはできません。のみ機能します(これはあなたの場合はあまり良くありません)。DataContext
RelativeSource
ElementName
Source
x:Reference
代わりに使用できます
<UserControl Name="EventTagger" ...>
<UserControl.Resources>
<TagFrameVerificationConverter x:Key="tagFrameVerificationConverter"
Tagger="{x:Reference EventTagger}"/>
</UserControl.Resources>
</UserControl>
VS2010デザイナーを使用している場合は、次のようなエラーが表示されます。
サービスプロバイダーにINameResolverサービスがありません
これは単なる設計上のバグであり、connect:
Visual Studio 2010 InvalidOperationExceptionで説明されているように回避できます。WPFでx:Referenceを使用します。デザインモードの場合は
戻りProvideValue
ます。null
[ContentProperty("Name")]
public class Reference : System.Windows.Markup.Reference
{
private static DependencyObject _dependencyObject = new DependencyObject();
public Reference()
: base()
{ }
public Reference(string name)
: base(name)
{ }
public override object ProvideValue(IServiceProvider serviceProvider)
{
if (DesignerProperties.GetIsInDesignMode(_dependencyObject) == true)
{
return null;
}
return base.ProvideValue(serviceProvider);
}
}