0
我有一个包含下面的XAML代码一个用户控件:用户控制与Viewbox控件 - 结合路径数据
<Viewbox Style="{StaticResource shapeViewboxStyle}">
<Canvas Width="32" Height="32" Margin="5">
<Path Data="{Binding Path=PathData}"/>
</Canvas>
</Viewbox>
在代码隐藏我暴露一个依赖属性:
public string PathData
{
get { return (string)GetValue(PathDataProperty); }
set { SetValue(PathDataProperty, value); }
}
public static readonly DependencyProperty PathDataProperty =
DependencyProperty.Register("PathData", typeof(string),
typeof(ContentItemHeader), new PropertyMetadata(null));
我想什么do是在插入用户控件时传递一个包含路径数据的字符串。
PathData="M 0,0 V 32 H 32 V 0 H 0 M 0,8 H 32"
但这不起作用。我根本没有形象。我究竟做错了什么?
这工作!如果我正确地理解了这一点,这说的是不使用继承的DataContext,而是使用UserControl本身? – cce1911
您的示例中似乎没有继承的DataContext。设置'PathData =“M 0,0 V 32 H 32 V 0 H 0 M 0,8 H 32”'不设置DataContext。通常,UserControl既不应该直接访问继承的DataContext,也不应该明确地设置它自己的。它应该公开依赖属性,然后在使用控件时绑定到继承的DataContext的属性,如' '。 –
Clemens
我在代码隐藏中设置了DataContext,但没有显示出来。 'LayoutRoot.DataContext = this;' – cce1911