gpt4 book ai didi

c# - 如何在不使用 DataContext 的情况下绑定(bind)到 Silverlight 中的本地属性?

转载 作者:行者123 更新时间:2023-11-30 17:17:54 25 4
gpt4 key购买 nike

我有一个小问题,但已经找到了很多不同的,而且大多是模棱两可的答案:

我有以下用户控件,我正在尝试绑定(bind)到该控件(事件)中的公共(public)属性。每个人都说我必须使用数据上下文,但是,我真的不想那样做......我只想从控件的内部绑定(bind)到属性XAML...

要求是绑定(bind)必须是双向的,因此 ui 中的任何更改都将反射(reflect)在它绑定(bind)到的属性(或更确切地说是集合)中。该集合中的每个 Event 对象也以与此控件相同的方式实现 INotifyPropertyChanged...

任何想法将不胜感激!

public partial class EventEditorWindow : UserControl, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;

public ObservableCollection<Event> events;
public ObservableCollection<Event> Events
{
get { return this.events; }
set
{
if( this.events != value )
{
this.events = value;
this.RaisePropertyChanged("Events");
}
}
}

private void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
this.VerifyPropertyName(propertyName);
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}

[Conditional("DEBUG")]
[DebuggerStepThrough]
public void VerifyPropertyName(string propertyName)
{
var currentObjectType = this.GetType();

if (currentObjectType.GetProperty(propertyName) == null)
{
throw new ArgumentException("Property not found", propertyName);
}
}
}

谢谢,哔哔声。

最佳答案

在构造函数中,设置 DataContext = this。这将有效地使您的代码支持您的 DataContext。 AFAIK,您无法完全避免使某物成为 DataContext。

关于c# - 如何在不使用 DataContext 的情况下绑定(bind)到 Silverlight 中的本地属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6102453/

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