我正在尝试使用用户控件从其包含元素传入图像。目的是让我可以重复使用一组通用的视觉元素,同时只改变图像。例如:
控制用法:
<DataTemplate DataType={x:Type myType}>
<local:MyControl PlotIconSource="..\Images\Scatter.png"/>
</DataTemplate>
控件内的图像
<UserControl x:Class="MyControl">
<Image Source="{Binding PlotIconSource}"/>
</UserControl>
最后,MyControl.xaml.cs代码隐藏中PlotIconSource的依赖属性。
public ImageSource PlotIconSource
{
get { return (ImageSource)GetValue(PlotIconSourceProperty); }
set { SetValue(PlotIconSourceProperty, value); }
}
public static readonly DependencyProperty PlotIconSourceProperty =
DependencyProperty.Register(
"PlotIconSource",
typeof(ImageSource),
typeof(PlotHeader),
new UIPropertyMetadata());
我确信我一路上都错过了一些东西,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
您可能希望通过RelativeSource
或ElementName
:
<UserControl x:Class="MyControl" Name="control">
<Image Source="{Binding PlotIconSource, ElementName=control}"/>
</UserControl>
(不要设置DataContext
,它将从外部隐藏,并且对于继承的DataContext
意味着混乱
答案 1 :(得分:0)
看起来对我来说,您收到错误消息还是其他什么?