gpt4 book ai didi

silverlight - 在 Silverlight 中绑定(bind)用户控件的属性

转载 作者:行者123 更新时间:2023-12-03 11:00:31 26 4
gpt4 key购买 nike

我有一个我创建的用户控件。 它在列表框的 DataTemplate 中使用。
列表框绑定(bind)到自定义对象的可观察集合。

我需要一种通过绑定(bind)将当前对象传递给我的用户控件的方法。

我试图在用户控件上创建一个公共(public)属性,如下所示:

public TypedMediaItem CurrentItem { get; set; }

并设置绑定(bind)参数:
<my:LargeStreamItemControl Height="160" Width="295" CurrentItem="{Binding }" />

但是,这给了我以下错误:

“System.Windows.Data.Binding”类型的对象无法转换为“F1MediaCentre.Classes.Payload.Typed.TypedMediaItem”类型。

我不确定我哪里出错了——我是 Silverlight 的新手,从一位前同事那里继承了一个现场制作应用程序,并且正在为这个应用程序绞尽脑汁。

最佳答案

我会对此进行尝试...您可能无法绑定(bind)到它,因为它不是依赖属性。

将此添加到您的用户控件以代替当前的 CurrentItem:

    Public Shared ReadOnly CurrentItemProperty As DependencyProperty = _
DependencyProperty.Register("CurrentItem", GetType(TypedMediaItem), GetType(LargeStreamItemsControl), New PropertyMetadata(Nothing))
Public Property CurrentItem() As TypedMediaItem
Get
Return DirectCast(GetValue(LargeStreamItemsControl.CurrentItemProperty), TypedMediaItem)
End Get
Set(value As TypedMediaItem)
SetValue(LargeStreamItemsControl.CurrentItemProperty, value)
End Set
End Property

对不起,我主要做 VB ......希望你能转换成 C# :)

这将使它成为一个依赖属性,因此您将能够绑定(bind)到它。

好的,这里是 C#:
public static readonly DependencyProperty CurrentItemProperty = 
DependencyProperty.Register("CurrentItem", typeof(TypedMediaItem), typeof(LargeStreamItemsControl), new PropertyMetadata(null));
public TypedMediaItem CurrentItem
{
get { return (TypedMediaItem)GetValue(LargeStreamItemsControl.CurrentItemProperty); }
set { SetValue(LargeStreamItemsControl.CurrentItemProperty, value); }
}

关于silverlight - 在 Silverlight 中绑定(bind)用户控件的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9231510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com