第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何獲取與列表視圖數(shù)據(jù)模板中存在的復選框關聯(lián)的值?

如何獲取與列表視圖數(shù)據(jù)模板中存在的復選框關聯(lián)的值?

C#
蝴蝶不菲 2023-09-09 16:31:16
我正在嘗試獲取“選定”復選框的值/內(nèi)容,以便我可以使用它從后端的 sqlite 數(shù)據(jù)庫獲取數(shù)據(jù)。但我無法從列表視圖中獲取復選框的值。這是列表視圖 -<ListView x:Name="listview" Background="Azure" SelectionMode="Multiple"         ItemsSource="{Binding Strings}" RenderTransformOrigin="0.5,0.5" Width="343">    <ListView.ItemTemplate>        <DataTemplate x:Name="datatemplate">            <CheckBox x:Name="CheckBoxZone" IsChecked="{Binding RelativeSource={RelativeSource AncestorType=ListViewItem},Path=IsSelected}"                        Content="{Binding que_text}" Margin="0,5,0,0"/>        </DataTemplate>    </ListView.ItemTemplate></ListView><Button  Style="{StaticResource ResourceKey=button_style }" x:Name="addToSurvey" Content="Add" Click="AddToSurvey_Click" />這是函數(shù)-private void AddToSurvey_Click(object sender, RoutedEventArgs e){    //foreach (var item in listview.SelectedItems)    for (int i=0;i< listview.SelectedItems.Count;i++)    {        string que = listview.Items[i].ToString(); //did not work    }}這是問題課 -public class Questions{    public int que_id { get; set; }    public string que_text { get; set; }}該復選框包含 que_text 值,我需要檢索該值以從數(shù)據(jù)庫獲取 que_id。
查看完整描述

1 回答

?
holdtom

TA貢獻1805條經(jīng)驗 獲得超10個贊

在 WPF 中,我們使用所謂的 MVVM。我們不會像在 winforms 中那樣去查看 ListViewItem 控件,而是將所需信息的屬性放在視圖模型類上,并且使用綁定來告訴 UI 如何更新視圖模型類,反之亦然。


因此,我們將向 Question 添加 IsSelected 屬性。我們還將將該類從Questions重命名為Question,問題集合現(xiàn)在將命名Questions為Strings。


public class Question

{

    public int ID { get; set; }

    public string Text { get; set; }

    public bool IsSelected { get; set; }

}

這是您的列表視圖。我們將 CheckBox.IsSelected 綁定到 ListViewItem.IsSelected,因此用戶只需單擊項目上的任意位置即可檢查它們。然后我們將 Question.IsSelected 綁定到 ItemContainerStyle 中的 ListViewItem.IsSelected。


<ListView 

    x:Name="listview" 

    Background="Azure" 

    SelectionMode="Multiple"

    ItemsSource="{Binding Questions}" 

    >

    <ListView.ItemTemplate>

        <DataTemplate>

            <CheckBox 

                IsChecked="{Binding RelativeSource={RelativeSource AncestorType=ListViewItem}, Path=IsSelected}"

                Content="{Binding Text}" Margin="0,5,0,0"

                />

        </DataTemplate>

    </ListView.ItemTemplate>

    <ListView.ItemContainerStyle>

        <Style TargetType="ListViewItem">

            <Setter Property="IsSelected" Value="{Binding IsSelected}" />

        </Style>

    </ListView.ItemContainerStyle>

</ListView>

以下是我們?nèi)绾翁幚碓撌录幚沓绦蛑羞x定的問題。我猜測您的Strings收藏是 Window 或您擁有的任何視圖的成員;如果情況并非如此,請告訴我,我們將找出解決辦法。請記住,我們Questions現(xiàn)在調(diào)用該集合。


private void AddToSurvey_Click(object sender, RoutedEventArgs e)

{

    string allQuestionsText = "";


    foreach (var question in Questions.Where(q => q.IsSelected))

    {

        //  I don't know what you really want to do in here, but it sounds like you do. 

        allQuestionsText += question.Text + "\n";

    }

}


查看完整回答
反對 回復 2023-09-09
  • 1 回答
  • 0 關注
  • 109 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號