亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取復選框的實際名稱而不是 datarowview

如何獲取復選框的實際名稱而不是 datarowview

C#
一只萌萌小番薯 2022-10-23 10:06:38
如何循環通過加載的所有復選框public void loadTags(){    DataTable dt = new DataTable();    using (SqlCommand selectTags = new SqlCommand("select tag from Categories", cs))    {        cs.Open();        using (SqlDataAdapter dataAd = new SqlDataAdapter(selectTags))        {            dt = new DataTable();            dataAd.Fill(dt);        }        cs.Close();    }    list1.ItemsSource = dt.DefaultView;}xml:<ListView Name="list1" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="307,52,0,0" Height="132" Width="293">    <ListView.ItemTemplate>        <DataTemplate>            <CheckBox Content="{Binding tag}"/>        </DataTemplate>    </ListView.ItemTemplate></ListView>你知道我現在如何使用循環獲取所有標簽名稱(復選框)嗎?如果我將這些復選框直接硬編碼到網格中,則此循環正在工作。但是,如果我直接從數據庫中獲取它們,如果選中這些復選框,我只會得到System.Data.DataRowView而不是spo、inf、war 等。foreach (var items in list1.Items){    if (items.IsChecked == true)    {        list.Add("CategoryMulti like '%" + item.Content.ToString() + "%'");    }}
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

您可以將引用存儲dt.DefaultView在DataView字段中,也可以轉換項目:


foreach (DataRowView item in list1.Items.OfType<DataRowView>())

{

    //...

}

您仍然需要將 的IsChecked屬性值存儲CheckBox在DataTable. 如果沒有這樣的列,則應DataTable在視圖中綁定之前將其添加到:


DataTable dt = new DataTable();

dt.Columns.Add(new DataColumn("Checked", typeof(bool)) { DefaultValue = false });

...

<CheckBox Content="{Binding tag}" IsChecked="{Binding Checked} "/>

然后,您可以像這樣在循環中獲取列的值:


foreach (DataRowView item in list1.Items.OfType<DataRowView>())

{

    bool isChecked = Convert.ToBoolean(item["Checked"]);

    //...

}


查看完整回答
反對 回復 2022-10-23
  • 1 回答
  • 0 關注
  • 118 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號