gpt4 book ai didi

c# - WPF 2 ListView 简单的选定项数据绑定(bind)

转载 作者:太空宇宙 更新时间:2023-11-03 21:32:05 24 4
gpt4 key购买 nike

我现在的主要目标是使用我之前在工作代码中看到的这种语法:

{Binding SelectedItem, ElementName=JobTest}

我目前对这段代码的理解是 ElementName覆盖“父”数据上下文的常规绑定(bind)约定,并告诉绑定(bind)从其他元素的任何来源提取。 SelectedItem显然只是将源过滤到所选的源。

我想得到一些非常简单的工作,并决定使用两个 <ListView>元素:

<ListView Name="JobTest" ItemsSource="{Binding JobsTest}" Grid.Column="2" />
<ListView ItemsSource="{Binding SelectedItem, ElementName=JobTest}" Grid.Column="3"/>

一个与 ObservableCollection 的常规绑定(bind)另一个只显示从第一个中选择的一个。

这是我在 DataContext 中设置和使用的属性:

public ObservableCollection<JobViewModel> JobsTest { get; set; }

我在这里设置:

this.myContext.JobsTest = new ObservableCollection<JobViewModel>(data.JobModels.Select(jm => new JobViewModel(jm)));

第一个 ListView 正在填充数据,但是,为什么当我从第一个 ListView 中选择一个项目时,它没有显示在第二个 ListView 中?我会密切关注这篇文章,并很乐意满足任何进一步的代码查看请求。谢谢!

最佳答案

您不能将单个项目绑定(bind)到项目列表。因为,正如您提到的,JobViewModel

is just a class which has properties like Name, Description, Schedule among others

一种方法是使用某种GridStackPanel 来显示SelectedItem 的字段

<ListView Name="JobTest" ItemsSource="{Binding JobsTest}" Grid.Column="2" />
<StackPanel DataContext="{Binding SelectedItem, ElementName=JobTest}" Grid.Column="3">
<TextBlock Text="{Binding Name}"/>
<TextBlock Text="{Binding Description}"/>
<TextBlock Text="{Binding Schedule}"/>
</StackPanel>

关于c# - WPF 2 ListView 简单的选定项数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23659961/

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