gpt4 book ai didi

xaml - 将窗口的属性绑定(bind)到 XAML 中它自己的资源之一?

转载 作者:行者123 更新时间:2023-12-04 04:14:57 26 4
gpt4 key购买 nike

当我有一个 usercontrol,它有一个我想绑定(bind)到 XAML 资源的属性时,我通常在控件或包含该控件的窗口中设置该绑定(bind)。例如:

<local:MyNeatControl MyProperty="{StaticResource ...}" />

这会将 MyNeatControl 对象实例的 MyProperty 属性设置为父控件中的资源。

但是当我有一个窗口,并且我想将它的一个属性绑定(bind)到它自己的资源之一时,我该怎么办?用代码很容易做到:

public MainWindow()
{
this.Loaded += new RoutedEventHandler(this.MainWindow_Loaded);
...
}

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
this.MyProperty = this.Resources["MyProperty"] as MyProperty;
...
}

但这让我很烦恼。我宁愿在 XAML 中绑定(bind)属性,也不愿在代码中设置它。

我该怎么做?我尝试将 MyProperty 声明作为属性添加到元素中。但我得到一个错误:

The property 'MyProperty' was not found in type 'Window'.

我是否缺少一些简单的东西?

最佳答案

尝试使用 DynamicResource 而不是 StaticResource

例子:

<Window x:Class="BindingToOwnResources.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:System="clr-namespace:System;assembly=mscorlib"
Title="MainWindow" Height="350" Width="{DynamicResource WindowWidth}">
<Window.Resources>
<System:Double x:Key="WindowWidth">300</System:Double>
</Window.Resources>
<Grid>

</Grid>
</Window>

关于xaml - 将窗口的属性绑定(bind)到 XAML 中它自己的资源之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13129185/

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