我有一个listview定义如下:
<ListView Height="234.522" Name="chartListView" Width="260" SelectionChanged="chartListView_SelectionChanged" HorizontalAlignment="Left" Margin="251,38,0,38">
<ListView.View>
<GridView>
<GridViewColumn Header="op1" DisplayMemberBinding="{Binding op1}" Width="50"/>
<GridViewColumn Header="op2" DisplayMemberBinding="{Binding op2}" Width="50"/>
<GridViewColumn Header="op3" DisplayMemberBinding="{Binding op3}" Width="50"/>
<GridViewColumn Header="op4" DisplayMemberBinding="{Binding op4}" Width="50"/>
<GridViewColumn Header="op5." DisplayMemberBinding="{Binding op5}" Width="50"/>
</GridView>
</ListView.View>
</ListView>
我使用以下内容添加数据:
chartListView.Items.Add(new {
op1 = "test1", op2 = "test2", op3 = "test3", op4 = "test4", op5 = "test5" });
如何访问其中一个选定的项目,以便查看列的值(例如op3
)?以下代码显示了所有值,但我只想查看op3
。
MessageBox.Show(chartListView.SelectedItem.ToString());
答案 0 :(得分:1)
我建议使用 MVVM模式,以便将UI与底层逻辑连接起来。
在互联网上,您将找到有关M * VVM模式 *的大量信息和资源。
核心思想是拥有一个包含数据结构和变量的 ViewModel (VM)。这些数据结构和变量是完全自治的,并且不以任何方式依赖于UI层。结构和变量从VM到UI / 查看(V)的连接位于 DataBindings 中。
所以你要做的事情(用非常短的术语)是将列表控件的ItemSource属性与一些底层数据结构连接起来(这里通常的结构是 ObservableCollection - 阅读文献以找出原因。
这是第一步。第二步可能是在 ViewModel 中添加一个object类型的变量,该变量将保存列表中当前选定的项目。要完成这项工作,您只需要将列表的 SelectedItem - 属性与此变量相连接。
从那时起,只要您在列表中选择一个项目,查看中的变量就会保留其值。
当然这很简短,而且相当粗略,但也许它让你想深入了解 MVVM模式 - 这是非常好的想法;)