UserControl与SurfaceWindow

时间:2009-04-22 08:40:24

标签: wpf windows user-controls dependencies

我正在尝试使用我在UserControl类中声明的值来更改SurfaceWindow类中的内容。现在我所知道的是,我必须使用DependencyProperty从UserControl获取值,然后将其放在公共字符串中。

  public string MapValue
    {
        get { return (string)GetValue(MapValueProperty); }
        set { SetValue(MapValueProperty, value); }
    }

    public static readonly
        DependencyProperty MapValueProperty = DependencyProperty.Register("MapValue", typeof(string), typeof(MapManager));

现在我的问题是,我如何将公共字符串(在UserControl中)绑定到一个元素(在SurfaceWindow中)?

如果我使用DependencyProperty,我会创建一个新类,还是将它放在usercontrol代码中?

如果有人可以帮我解决这个问题,我会很高兴。

2 个答案:

答案 0 :(得分:0)

据我所知,你试图绑定到窗口中某个控件的依赖属性。

如果是这种情况,您可以在绑定声明中使用ElementName语法,例如:

<TextBlock Text="{Binding ElementName=MapControl, Path=MapValue}"/>

答案 1 :(得分:0)

我的窗口控件中已经有了这个:

<Image x:Name="iGroundPlan" Source="{Binding ElementName=MapManager,Path=MapValue}" />

(MapManager是我的usercontrol的名称)

但看起来它不起作用,我不知道为什么..它就像Windows永远不知道我的usercontrol中的值MapValue何时更新= \