当我有一个用户控件具有我想绑定到 XAML 中的资源的属性时,我通常在包含该控件的控件或窗口中设置该绑定。例如:
<local:MyNeatControl MyProperty="{StaticResource ...}" />
这会将 MyNeatControl 对象的该实例的 MyProperty 属性设置为父控件中的资源。
但是,当我有一个窗口时,我想将它的属性之一绑定到它自己的资源之一时该怎么办?在代码中很容易做到:
public MainWindow()
{
this.Loaded += new RoutedEventHandler(this.MainWindow_Loaded);
...
}
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
this.MyProperty = this.Resources["MyProperty"] as MyProperty;
...
}
但这让我很困扰。我宁愿在 XAML 中绑定属性,也不愿在代码中设置它。
我该怎么做?我尝试将 MyProperty 声明添加为元素的属性。但我收到一个错误:
The property 'MyProperty' was not found in type 'Window'.
我缺少一些简单的东西吗?