wpf Binding 访问全局对象
时间: 2024-01-16 11:05:04 浏览: 70
wpf关于Binding的
在WPF中,可以使用`StaticResource`或`DynamicResource`来访问全局对象。`StaticResource`会在应用程序启动时立即解析,而`DynamicResource`则会在需要时延迟解析。
以下是使用`StaticResource`访问全局对象的示例:
1. 在App.xaml中定义全局资源
```
<Application.Resources>
<local:GlobalObject x:Key="GlobalObject" />
</Application.Resources>
```
2. 在XAML中使用`StaticResource`引用全局资源
```
<TextBlock Text="{Binding Source={StaticResource GlobalObject}, Path=GlobalProperty}" />
```
3. 在全局对象类中定义需要绑定的属性
```
public class GlobalObject : INotifyPropertyChanged
{
private string _globalProperty;
public string GlobalProperty
{
get { return _globalProperty; }
set
{
_globalProperty = value;
OnPropertyChanged("GlobalProperty");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
```
在以上示例中,`GlobalObject`是一个全局对象,它包含一个名为`GlobalProperty`的属性。通过在XAML中使用`StaticResource`引用全局对象,并设置`Path`为需要绑定的属性,即可实现访问全局对象。
需要注意的是,全局对象的定义和资源的引用应该在所有窗体和页面之前,以确保其在全局范围内可访问。
阅读全文