gpt4 book ai didi

c# - WPF 直接绑定(bind)到 DataContext

转载 作者:行者123 更新时间:2023-12-02 14:58:44 24 4
gpt4 key购买 nike

是否有关键字直接绑定(bind)到 DataContext 而不是它的属性?

我听说了使用 Self Object 的解决方法。我的问题是我打开了一个窗口,并给出了一个 ObservableCollection 作为参数,它被设置为 DataContext。

这里是 WPF(xaml.cs) 构造函数

public Depot(ObservableCollection<ObservableCollection<ItemManager.Item>> totalDepot)
{
this.FullDepotList = totalDepot;
this.DataContext = FullDepotList[1];
InitializeComponent();
}

我希望直接绑定(bind)到 DataContext 或“this”的 XAML 代码片段:

<WrapPanel>
<ListBox
ItemsSource="{Binding this, UpdateSourceTrigger=PropertyChanged}"
ItemTemplate="{DynamicResource ItemWithCoolTooltipTemplate}"
Focusable="False">
</ListBox>
</WrapPanel>

最佳答案

要直接绑定(bind)到 DataContext 而不是它的属性,请不要编写任何绑定(bind)路径。让它只是 {Binding}。不需要 UpdateSourceTrigger=PropertyChanged,因为 ItemsSource 不会从 View 中更改。

<ListBox 
ItemsSource="{Binding}"
ItemTemplate="{DynamicResource ItemWithCoolTooltipTemplate}"
Focusable="False">
</ListBox>

或者使用 Path=. 来编写“在此处绑定(bind)整个 DataContext”的要求

<ListBox 
ItemsSource="{Binding Path=.}"
ItemTemplate="{DynamicResource ItemWithCoolTooltipTemplate}"
Focusable="False">
</ListBox>

通常需要使用 RelativeSource/ElementName 的任何技巧来更改绑定(bind)源。在这种情况下,DataContext(绑定(bind)源)只是从父窗口继承。

关于c# - WPF 直接绑定(bind)到 DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51456057/

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