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。这些东西对我来说真的很新鲜。非常感谢。