gpt4 book ai didi

c# - 绑定(bind)属性不是依赖属性

转载 作者:行者123 更新时间:2023-11-30 22:12:46 24 4
gpt4 key购买 nike

我想将媒体元素的位置绑定(bind)到它的模型 View 。我知道该属性不是依赖属性。于是就这样试了一下,网上找的一段代码

<MediaElement Source="{Binding CurrentClip.Path, Converter={StaticResource converter}, UpdateSourceTrigger=PropertyChanged}" Stretch="Uniform" local:MediaElementHelper.Postion="{Binding CurrentClip.Postion}"

媒体元素助手

class MediaElementHelper
{
public static readonly DependencyProperty PostionProperty =
DependencyProperty.RegisterAttached("Position",
typeof(bool), typeof(MediaElement),
new FrameworkPropertyMetadata(false, PostionPropertyChanged));

private static void PostionPropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
{
var richEditControl = obj as MediaElement;

if (richEditControl != null)
{
richEditControl.Position = (TimeSpan)e.NewValue;
}
}
public static void SetPostion(UIElement element, TimeSpan value)
{
element.SetValue(PostionProperty, value);
}
public static TimeSpan GetPostion(UIElement element)
{
return (TimeSpan)element.GetValue(PostionProperty);
}
}

[错误]不能在“MediaElement”类型的“SetPostion”属性上设置“Binding”。 “绑定(bind)”只能在 DependencyObject 的 DependencyProperty 上设置。

我做错了什么?

最佳答案

您遇到的问题是因为您的 AttachedProperty 访问器名称有误。

而不是 GetPositionSetPostion 它们应该是 GetPositionSetPosition 并且在使用 AttachedProperty 时类似地偏离它应该是 local:MediaElementHelper.Position(不是 Postion)。

此外,您还需要按照其他答案的建议更新您的 Typedefault value。但是没有必要从 DependancyObject 派生您的类,而是可以将您的类设为 static

关于c# - 绑定(bind)属性不是依赖属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19533479/

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