Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何根据数据库的datarow向ListView添加新的复选框?_C#_Wpf_Xaml_Checkbox - Fatal编程技术网

C# 如何根据数据库的datarow向ListView添加新的复选框?

C# 如何根据数据库的datarow向ListView添加新的复选框?,c#,wpf,xaml,checkbox,C#,Wpf,Xaml,Checkbox,我基本上需要这样的东西: SqlCommand selectTags = new SqlCommand("select tag from Categories", cs); SqlDataAdapter da = new SqlDataAdapter(selectTags); DataTable dt = new DataTable(); cs.Open(); da.Fill(dt); cs.Close(); CheckBox chkbb = new CheckBox(); list1.con

我基本上需要这样的东西:

SqlCommand selectTags = new SqlCommand("select tag from Categories", cs);
SqlDataAdapter da = new SqlDataAdapter(selectTags);
DataTable dt = new DataTable();
cs.Open();
da.Fill(dt);
cs.Close();

CheckBox chkbb = new CheckBox();
list1.content


foreach (DataRow dr in dt.Rows)
{
    MessageBox.Show(dr["tag"].ToString());

    Checkbox chk = new Checkbox into list1(list view) (This line supposed to be example.not working code. )
    chk.Content = dr["tag"].ToString();

}
是否可以根据sql数据库中的行创建动态复选框

它可以添加在页面加载等。。我不知道怎么做这样的东西。非常感谢你的帮助

添加了xaml复选框

<ListView Name="list1" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="307,52,0,0" Height="132" Width="293">

<CheckBox Content="inf" Visibility="Visible" HorizontalAlignment="Left" VerticalAlignment="Top" x:Name="chkBoxInfo" Width="43"/>
<CheckBox Content="spo" Visibility="Visible" HorizontalAlignment="Left" VerticalAlignment="Top" x:Name="chkBoxSp"/>
<CheckBox Content="war" HorizontalAlignment="Left" VerticalAlignment="Top" x:Name="chkBoxWar"/>
<CheckBox Content="cul" HorizontalAlignment="Left" VerticalAlignment="Top" x:Name="chkBoxCul" Height="14" Width="39"/>

</ListView>

列表视图的
项目源设置或绑定到
dt.DefaultView

DataTable dt = new DataTable();
using (SqlCommand selectTags = new SqlCommand("select tag from Categories", cs))
{
    cs.Open();
    using (SqlDataAdapter da = new SqlDataAdapter(selectTags))
    {
        DataTable dt = new DataTable();
        da.Fill(dt);
    }
    cs.Close();
}
list1.ItemsSource = dt.DefaultView;
…并使用
项目模板
单元格模板
显示
复选框

<ListView>
    <ListView.ItemTemplate>
        <DataTemplate>
            <CheckBox Content="{Binding tag}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>


我不知道该怎么做。你能给我解释一下吗?也许还有一个问题。如何将所有复选框添加到foreach循环中?foreach(list1.Items中的复选框项){if(item.IsChecked==true){list.Add(“CategoryMulti-like“%”+item.Content.ToString()+“%”;”;}}}}当前未使用数据绑定问题是您仅在视图中定义了复选框,即在XAML标记中。你应该仔细阅读MVVM和关注点分离。啊哈,这意味着我现在不能和他们一起工作了?或者我可以将它们用于一些逻辑吗?将
IsChecked
属性绑定到
DataTable
的一列。然后通过遍历行来检查要检查的行。@mm8提供了正确答案,但您熟悉数据绑定吗?看到你的代码我想不会。这里有一些有用的链接:是的,我需要学习绑定和MVVM。这些东西对我来说真的很新鲜。非常感谢。