【发布时间】:2014-12-13 23:46:16
【问题描述】:
我有这个 XAML 代码 (ErdMenuItem.xaml):
<UserControl x:Class="ErdBuilder.ErdMenuItem"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:erdBuilder="clr-namespace:ErdBuilder"
x:Name="UserControl">
<UserControl.Resources>
<erdBuilder:ByteImageConverter x:Key="imageConverter" />
</UserControl.Resources>
<Image Source="{Binding Converter={StaticResource imageConverter}, ElementName=UserControl, Path=Icon}" />
</UserControl>
如果我写:
<Image Source="{Binding Converter={StaticResource imageConverter}, ElementName=UserControl, Path=Icon}" />
然后转换器将不会被执行 - 我在转换器中使用断点。但如果我使用这个:
<Image Source="{Binding Converter={StaticResource imageConverter}}" />
然后将执行转换器。 Icon 是 string 类型的依赖属性。我不知道为什么不会执行转换器,因为我添加了 DependencyProperty,它应该带来我想要转换的值。有什么想法吗?
图标在这里 (ErdMenuItem.xaml.cs):
namespace ErdBuilder
{
public partial class ErdMenuItem
{
public static readonly DependencyProperty IconProperty = DependencyProperty.Register("Icon", typeof(string), typeof(ErdMenuItem), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender | FrameworkPropertyMetadataOptions.AffectsMeasure));
public string Icon
{
get { return (string)GetValue(IconProperty); }
set { SetValue(IconProperty, value); }
}
}
}
【问题讨论】:
-
在 UserControl 上看不到属性图标,msdn.microsoft.com/en-us/library/…
-
@Maximus 继承自 UserControl 类 ErdMenuItem
-
就您的代码而言,乍一看似乎一切都很好。我建议您查看输出窗口并发布您的转换器。