在C#WPF中使用指针同步两个对象头
我想用指针同步两个对象头。 例如:我知道我无法使用当前语法执行此操作,但我希望类似于:在C#WPF中使用指针同步两个对象头,c#,wpf,pointers,C#,Wpf,Pointers,我想用指针同步两个对象头。 例如:我知道我无法使用当前语法执行此操作,但我希望类似于: Node节点=新节点() node.Label=“header1” TabItem TabItem=新的TabItem *(tabItem.Header)=&(node.Label) 因此,每当我更改节点.Label,选项卡项.Header也会更改。编辑:添加了一个示例 您应该能够使用数据绑定来实现这一点。如果节点是自定义对象,则需要支持INotifyPropertyChange,或将Label属性作为依赖项
Node节点=新节点()代码>
node.Label=“header1”代码>
TabItem TabItem=新的TabItem代码>
*(tabItem.Header)=&(node.Label)代码>
因此,每当我更改节点.Label
,选项卡项.Header
也会更改。编辑:添加了一个示例
您应该能够使用数据绑定来实现这一点。如果节点是自定义对象,则需要支持INotifyPropertyChange,或将Label属性作为依赖项属性实现。(我不确定约定是什么,我猜如果节点本质上是一个UI对象,那么使用依赖属性,如果不是,那么实现INotifyPropertyChanged
例如:
节点对象:
public class Node: System.ComponentModel.INotifyPropertyChanged
{
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
public string Label
{
get { return this._Label; }
set
{
this._Label = value;
this.OnPropertyChanged(new System.ComponentModel.PropertyChangedEventArgs("Label"));
}
}
private string _Label;
protected virtual void OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs propertyChangedEventArgs)
{
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if (propertyChanged != null)
propertyChanged(this, propertyChangedEventArgs);
}
}
表单背后的代码(此方法在代码中设置数据绑定,也可以在XAML中设置数据绑定):
表单的XAML
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TabControl>
<TabItem Name="Tab1"/>
</TabControl>
</Grid>
当您进行数据绑定时,WPF将检测到您的节点对象实现了INotifyPropertyChanged,并将自动订阅PropertyChanged事件。
(注意,在主窗口代码中,我设置了绑定,然后设置了Node.Label的值——选项卡标题检测并更新它).您是否尝试创建新的绑定来绑定这两个属性?如果节点是您自己的对象,请实现INotifyPropertyChanged。您可以在代码中以及XAML中执行此操作。由于您看起来像是在代码中执行操作,因此这里有一个关于如何执行此操作的链接:谢谢!这正是我需要的
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TabControl>
<TabItem Name="Tab1"/>
</TabControl>
</Grid>