我的项目中有两个Silverlight控件,都有属性TeamId。 我想在控件托管两个用户控件的XAML中将这些绑定在一起,类似于:

        <agChat:UserTeams x:Name="oUserTeams" />
        <agChat:OnlineUser x:Name="oOnlineUsers" TeamId="{Binding ElementName=oUserTeams, Path=TeamId}" />

在第一个控件中,我正在实现System.ComponentModel.INotifyPropertyChanged并在TeamId属性更改时引发PropertyChanged事件。

在第二个控件中,我使用了propdp片段将TeamId标识为Dependency属性。

        // Using a DependencyProperty as the backing store for TeamId.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty TeamIdProperty = 
        DependencyProperty.Register(
        "TeamId", 
        typeof(string), 
        typeof(OnlineUsers), 
        new System.Windows.PropertyMetadata(new System.Windows.PropertyChangedCallback(TeamChanged)));

但是当首次创建silverlight控件时,我从Silverlight获得以下异常:

 Unhandled Error in Silverlight 2 Application Invalid attribute value {Binding ElementName=oUserTeams, Path=TeamId} for property TeamId. [Line: 21 Position: 146] at System.Windows.Application.LoadComponent(Object component, Uri xamlUri) at agChat.Page.InitializeComponent() at agChat.Page..ctor() at agChat.App.Application_Startup(Object sender, StartupEventArgs e) at System.Windows.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args) at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)

我有什么想法我做错了吗? 显然,这可以在代码隐藏中完成,但这似乎是正确的方法。

===============>>#1 票数:4 已采纳

这是WPF中的正确方法,但不是Silverlight中的方法。

您无法在Silverlight中使用xaml绑定到元素。

这是违规行:TeamId =“{Binding ElementName = oUserTeams,Path = TeamId}”

特别是ElementName

如果可以,将数据对象放入Resources并在那里声明,那么你可以这样做:

<agChat:UserTeams x:Name="oUserTeams" 
       DataContext="{StaticResource myDataObject}" />
<agChat:OnlineUser x:Name="oOnlineUsers" 
       DataContext="{StaticResource myDataObject}" 
       TeamId="{Binding  TeamId}" />

  ask by Kevin translate from so

未解决问题?本站智能推荐:

2回复

如何绑定到Silverlight自定义控件中的自定义属性

我创建了一个自定义控件,其中包括以下内容: 在我的XAML中,我(尝试)使用绑定来设置Enabled属性: 我知道控件和基础数据模型之间的绑定是有效的,并且可以绑定“ IsEnabled”(基础UserControl的本机属性),因此可以正常工作。 但是,从未通过上述绑定设置我
3回复

Silverlight UserControl自定义属性绑定

在Silverlight UserControls中实现自定义属性的正确方法是什么? Silverlight中的每个“页面”在技术上都是UserControl(它们派生自UserControl类)。 当我在这里说UserControl时,我指的是一个自定义UserControl,它将在许
6回复

将Silverlight UserControl自定义属性绑定到其元素

我正在尝试在Silverlight 2.0中制作一个简单的填字游戏。 我正在研究一个UserControl-ish组件,它代表了拼图中的一个正方形。 我将UserControl的属性与其元素绑定在一起时遇到了麻烦。 我终于(有点)让它工作了(可能对某些人有所帮助 - 它花了我几个小时),但
1回复

Silverlight模板化控件数据绑定到自定义属性

我在这里缺少一些技巧吗? 我创建了一个模板控件,非常简单。 它上有一个单一属性,我想从托管该属性的(viewmodel / datacontext)页面进行数据绑定到控件的自定义属性。 该属性最终将是一个矢量类型的对象,定义了控件的位置,但是为了使它起作用,我尝试将其简化为基本的字符串
1回复

对Silverlight用户控件自定义属性绑定的困惑

我有UserControl,名为thisUserControl ,它有两个控件,如下面的XAML代码所示: 顺便说一句,我不知道为什么我必须为UserControl设置一个名称,以便我可以在ElementName=thisUserControl使用它进行绑定。 (我认为如果没有提供El
9回复

在WPF / Silverlight页面中设置自定义属性

这听起来应该很简单。 我有一个以正常方式在XAML中声明的Page (即“添加新项目...”)并且它具有自定义属性。 我想在与页面关联的XAML中设置该属性。 尝试以我设置任何其他属性的方式执行此操作不起作用,原因我理解但不知道如何工作。 就这样我们有一些具体的话题,这里有一些(无效
1回复

Silverlight中带有XAML,自定义属性和动画的非常奇怪的问题

我创建了一个具有故事板类型属性的自定义用户控件。 就像是: 在XAML中,我按如下方式使用它: 到现在为止还挺好。 后来,我决定除了情节提要之外还需要另一个项目。 因此,我更改了代码,以接受包含情节提要和其他信息的自定义对象。 就像是: 并在XAML中使用了它
1回复

绑定到自定义属性

几个小时前,我发布了一个问题(http://stackoverflow.com/questions/11134264/c-sharp-add-properties-at-runtime)。 我问过要使用新属性扩展现有类。 而且,没关系。 我设法添加了新的属性,但是现在我需要根据已添加的属性
4回复

从自定义属性绑定

我是该论坛的新手,也是Silverlight的新手。 我自己和我的同事正在开发一个自定义应用程序。 我们正在构建一个菜单系统,该菜单系统仅在该用户处于指定角色时才显示按钮。 创建了一个新属性以允许定义角色,并且出于测试目的,我们只是尝试将该值(即字符串)分配给文本块的text属性。 附加
2回复

如何访问Silverlight 4中App.xaml.cs中创建的自定义属性

我在app.xaml.cs文件中创建了自己的自定义属性,我需要在我的一个viewmodel中访问此属性。 当我尝试通过Application对象访问时,它不会显示。 谁能帮我这个。 问候