gpt4 book ai didi

WPF与窗口的RelativeSource绑定(bind)需要路径中的 "DataContext"?

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

以下代码有效,但我很好奇为什么我需要以“DataContext”为前缀的路径?在大多数其他情况下,使用的路径是相对于 DataContext 的。是因为我使用的是RelativeSource吗?因为源是在根级别(窗口)?

    <Style TargetType="TextBox">
<Setter
Property="IsReadOnly"
Value="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Window}}, Path=DataContext.IsReadOnly}"/>
</Style>

最佳答案

您正在绑定(bind)到包含 Window 的 DataContext,而不是 Window 本身。你要说:

Value="{Binding RelativeSource={RelativeSource FindAncestor, 
AncestorType={x:Type Window}}, Path=IsReadOnly}"

这将绑定(bind)到 IsReadOnly Window 的属性,而不是它的数据上下文类。从 Window doesn't contain an IsReadOnly property ,这显然来自不同的类(很可能是您的 ViewModel,如果您使用的是 MVVM 等)。

关于WPF与窗口的RelativeSource绑定(bind)需要路径中的 "DataContext"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2493389/

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