我有两列的列表视图。第一列是复选框,第二列是服务器值。我想从本质上得到一个列表,在点击一个按钮后,在该行有相应的复选框。这怎么可能?在下面,我能够从我的服务器模型中成功绑定数据,并在第一列中放入了一个复选框,但我被卡住了。能够从WPF/C#中的选中项目中获取ListView项目的列表?
我试图按照MVVM模式,所以我有一个视图模型类,我最好想处理这个逻辑,然后在检查服务器名称存储在某个集合后传递它。
XAML代码
<ListView ItemsSource="{Binding Servers}" Margin="8,30,10,68">
<ListView.View>
<GridView>
<GridViewColumn Width="90" Header="Select For Sync">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Tag="{Binding ID}" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}, Path=IsSelected}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="280" Header="Pad Name"
DisplayMemberBinding="{Binding NodeName}" />
</GridView>
</ListView.View>
</ListView>
“但我坚持”,是什么问题到底是什么?第二栏中没有显示任何内容吗?它只添加一行吗?如果'Servers'中的每个数据都有一个布尔值,用于存储是否选中该复选框,我之前完成了此操作,并且可以根据需要提供一些示例代码,那么您的代码实际上可以被简化。 –
@KeyurPATEL我想将选中的复选框转换为字符串集合,其中集合中的每个项目都是服务器列中的关联字符串名称。数据显示在第二列中,但我想根据第一列中检查的内容获取这些数据。 – ryan
我之前做过一些非常类似的事情,我会尝试根据您的要求调整部分代码作为答案。 –