更改CheckedListBox ItemsSource

时间:2015-11-13 09:52:45

标签: c# windows forms visual-studio-2012 listbox

我是否尝试动态更改CheckedListBox中的项目源并保留其选定的值?

class Myclass extends Activity{
  getActionBar();
}
//Change by
class Myclass extends ActionBarActivity{
  getSupportActionBar();
}

当选择list1时(不是CHECKED,只是highligted)更新CheckedListBox2项

 CheckedListBox1 |   CheckedListBox2
[x] list0        |   [ ] list0item0
[ ] list1        |   [ ] list0item1
[ ] list2        |   [ ] list0item2
[ ] list3        |   [ ] list0item3

这是描述我的问题的picture

这是一段代码:

 CheckedListBox1 |   CheckedListBox2
[ ] list0        |   [ ] list1item0
[x] list1        |   [ ] list1item1
[ ] list2        |   [ ] list1item2
[ ] list3        |   [ ] list1item3

这有什么清洁解决方案吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

我不是c#的专家,更像是新手! 但我以这种方式想到了这一点。 当有人从listBox1中选择一个值(在Click上)时,它会清除listBox2结果以及默认情况下执行的查询或上一个查询。 在选择listBox1项之后,listBox2 onClick将根据选择的listBox1项进行查询。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

dates = pd.date_range('20070101',periods=1000)
df = pd.DataFrame(np.random.randn(1000), columns =list ('A'))
df['date'] = dates

def get_season(row):
    if row['date'].month >= 3 and row['date'].month <= 5:
        return 'spring'
    elif row['date'].month >= 6 and row['date'].month <= 8:
        return 'summer'
    elif row['date'].month >= 9 and row['date'].month <= 11:
        return 'autumn'
    else:
        return 'winter'

df['Season'] = df.apply(get_season, axis=1)
df['Year'] = df['date'].dt.year
df.loc[df['date'].dt.month == 12, 'Year'] += 1
df = df.set_index(['Year', 'Season'], inplace=False)

df.head()

fig,ax = plt.subplots()
df.plot(x='date', y = 'A', x_compat=True,ax=ax)

我无法确认但是我发现了一些关于此类列表框的文档。

Microsoft ListBox Selected items documentation

希望这有帮助! :)

答案 1 :(得分:0)

回答我自己的问题可能就是这个问题。 但我需要在CheckedListBox1中放置字符串而不是(集合)。

public partial class Form1 : Form
    {
        List<List<object>> function;
        List<object> useCase;

        public Form1()
        {
            function = new List<List<object>>();
            useCase =new List<object>();

            InitializeComponent();


            useCase.AddRange(new object[] {
            "List0Item0",
            "List0Item1",
            "List0Item2",
            "List0Item3",
            "List0Item4",
            "List0Item5"});

            this.function.Add(this.useCase);

            this.checkedListBox1.Items.Add(function);

            useCase = new List<object>();
            useCase.AddRange(new object[] {
            "List1Item0",
            "List1Item1",
            "List1Item2",
            "List1Item3",
            "List1Item4",
            "List1Item5"});

            this.function.Add(this.useCase);

            this.checkedListBox1.Items.Add(function);


        }

        private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.checkedListBox2.Items.Clear();
            for (int i = 0; i < this.function.Count(); i++)
            {
                if (checkedListBox1.SelectedIndex == i)
                {
                    for (int j = 0; j < this.function[i].Count(); j++)
                    {
                        this.checkedListBox2.Items.Add(this.function[i][j]);
                    }
                }
            }
        }
    }

附加代码的输出here