Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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# 创建复选框列表_C#_.net_Xaml - Fatal编程技术网

C# 创建复选框列表

C# 创建复选框列表,c#,.net,xaml,C#,.net,Xaml,好吧,基本上我是C#的新手,我目前在一家开发电子商务软件的公司工作,我遇到了一个似乎无法解决的问题 我有两列,我想添加第三列,显示复选框列表,但我只想在其他两个(或一个)字段中显示某种形式的数据时显示这些复选框,即: Name Type Check lol lol 我还希望自动勾选这些复选框 另一个问题是,我也希望这样做时,检查的产品显示在我们的搜索,但如果他们是取消检查,我希望他们被隐藏,但不是删除 我目前正在使用GridView,因为我不

好吧,基本上我是C#的新手,我目前在一家开发电子商务软件的公司工作,我遇到了一个似乎无法解决的问题

我有两列,我想添加第三列,显示复选框列表,但我只想在其他两个(或一个)字段中显示某种形式的数据时显示这些复选框,即:

            Name Type Check
            lol   lol
我还希望自动勾选这些复选框

另一个问题是,我也希望这样做时,检查的产品显示在我们的搜索,但如果他们是取消检查,我希望他们被隐藏,但不是删除

我目前正在使用GridView,因为我不想重写已经存在的其他内容,因为它与一个我还不知道的SQL数据库通信

我们没有使用ASP,我们使用的是XAML&C#(我对这两个方面都知之甚少)。下图是一幅糟糕的图形,无法描绘出它需要的样子


你的问题很广泛,有点难以回答。简而言之,您要查看的是控件上的
可见性
属性

通过将
可见性
设置为
折叠
,UI将不显示该元素。如果需要,可以根据另一个XAML元素或数据删除的值设置可见性,但需要实现一个实现IValueConverter的类来进行转换

最常见的值转换器之一是“布尔值到可见性”转换器。如果你在互联网上搜索,你就能找到这些例子。您可以复制该方法并创建“EmptyToVisibilityConverter”或“NullToVisibilityConverter”或您需要的任何其他内容。拥有该转换器后,只需在可见性的绑定中指定它。例如:

<Page.Resources>
    <conv:NullToVisibilityConverter x:Key="NullToVis"/>
</Page.Resources>

<CheckBox ... Checked={Binding ThisBoxIsChecked} 
              Visibility={Binding SomeOtherValue, 
                          Converter={StaticResource NullToVis}}"/>


这就是我过去用来为每个datagridview行创建复选框的方法。。。然后,我使用datagridview\u cellcontentclick事件处理程序在单击时更改复选框的值。在下面代码的上下文中,我有一个自定义类,它由程序名、窗口标题和打开的文件或url组成。然后我创建了一个全局列表“oplist”,它是custom-custructor类型的。然后,当我将列表中的项目添加到datagridview时,我指定了列标题。然后从datagridview中添加或删除任何内容变得非常容易。您所要做的就是将该项删除或添加到列表中,然后刷新datagridview

    public void addOpenProgramsToDataGrid()
    {
        dataGridView1.ColumnCount = 3;

        DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
        {
            column.HeaderText = "Selected";
            column.Name = "Selected";
            column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
            column.FlatStyle = FlatStyle.Standard;
            column.ThreeState = false;
            column.CellTemplate = new DataGridViewCheckBoxCell();
            column.CellTemplate.Style.BackColor = Color.White;
        }

        dataGridView1.Columns.Insert(0, column); // This is to be a checkbox column
        dataGridView1.Columns[0].HeaderText = "X";


        dataGridView1.Columns[1].HeaderText = "Process Name:";

        dataGridView1.Columns[2].HeaderText = "Window Title";
        dataGridView1.Columns[3].HeaderText = "Open File or URL";

        dataGridView1.RowCount = opList.Count;
        //opList.RemoveRange(0, opList.Count);
        for (int a = 0; a < opList.Count; a++)
        {
            openProgram tempProgram = new openProgram();
            tempProgram = opList[a];
            dataGridView1.Rows[a].Cells[0].Value = true;

            dataGridView1.Rows[a].Cells[1].Value = tempProgram.processName;
            dataGridView1.Rows[a].Cells[2].Value = tempProgram.windowTitle;
            dataGridView1.Rows[a].Cells[3].Value = tempProgram.openFileOrURL;
        }
        selectAllCheckBox.Checked = true;
    }
public void addOpenProgramsToDataGrid()
{
dataGridView1.ColumnCount=3;
DataGridViewCheckBoxColumn=新DataGridViewCheckBoxColumn();
{
column.HeaderText=“已选定”;
column.Name=“Selected”;
column.AutoSizeMode=DataGridViewAutoSizeColumnMode.DisplayedCells;
column.FlatStyle=FlatStyle.Standard;
column.ThreeState=false;
column.CellTemplate=新的DataGridViewCheckBoxCell();
column.CellTemplate.Style.BackColor=Color.White;
}
dataGridView1.Columns.Insert(0,column);//这是一个复选框列
dataGridView1.Columns[0].HeaderText=“X”;
dataGridView1.Columns[1]。HeaderText=“进程名称:”;
dataGridView1.Columns[2]。HeaderText=“窗口标题”;
dataGridView1.Columns[3]。HeaderText=“打开文件或URL”;
dataGridView1.RowCount=opList.Count;
//opList.RemoveRange(0,opList.Count);
for(int a=0;a
您使用什么方法设置应用程序中的值。。。你在使用数据绑定吗?直接设置值?还有,你说的是XAML,但是什么类型:Silverlight、WIndows 8、WPF?我使用的是WPF,至于我们如何设置值,我相信我们使用的是数据绑定,我当时对C语言不是很熟悉,因此我有点挣扎,这项工作是基于“边学边用”的基础^谢谢你的回复,但我在作业中不够清楚,对此表示抱歉。呜呜,在我完成之前停下来。软件转发到客户网站,我想在网站上隐藏数据(他们希望隐藏/显示的产品),而不是我们自己的个人用户界面,我目前看到的部分是允许他们设置特价组的部分,即,所有的巧克力棒都是减价的,能够选择要展示的巧克力棒,并且能够将那只猫放在一边以备将来参考,但目前的主要问题是复选框,因为一旦我完成了,我就可以向我的老板展示某种形式的进步:p这更容易通过XAML和数据绑定进行声明处理。