我有兩列的列表視圖。第一列是複選框,第二列是服務器值。我想從本質上得到一個列表,在點擊一個按鈕後,在該行有相應的複選框。這怎麼可能?在下面,我能夠從我的服務器模型中成功綁定數據,並在第一列中放入了一個複選框,但我被卡住了。能夠從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
我之前做過一些非常類似的事情,我會嘗試根據您的要求調整部分代碼作爲答案。 –