0

谁能告诉我如何在以编程方式创建的列表中连接复选框的单击事件?到目前为止,我只看到了连接静态创建而不是从代码动态分配的对象的事件的示例。

该列表的创建如下面的片段中所述:

namespace CustomListApp
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
            for (int i = 1; i <= 10; ++i)
            {
                CustomListBoxItem clbi = new CustomListBoxItem();
                clbi.Title.Text = "This is item " + i;
                clbi.Condition.IsChecked = i % 2 == 0;
                CustomListBox.Items.Add(clbi);
            }
        }
    }
}

并且 CustomListBoxItem 具有以下结构:

<UserControl x:Class="CustomListApp.CustomListBoxItem"[...]>

    <Grid x:Name="ListBoxItemGrid" Background="{StaticResource PhoneChromeBrush}" Height="65">
        <CheckBox x:Name="Condition" Height="67" HorizontalAlignment="Right" VerticalAlignment="Top" Width="65" Click="Condition_Click" />
        <TextBlock x:Name="Title" Height="65" HorizontalAlignment="Left" Margin="84,0,0,0" Text="TextBlock" VerticalAlignment="Center" Width="294" />
    </Grid>
</UserControl>
4

2 回答 2

1

也许您可以创建您想要添加到列表框中的元素类型。然后你可以像这样检查点击:

<YOUR DATA TYPE> data = (sender as ListBox).SelectedItem as <YOUR DATA TYPE>;

然后您可以使用这些数据。我希望我能帮助你回答这个问题。

于 2012-07-11T20:40:56.690 回答
0

你的意思是喜欢

cbi.Condition.Click += new_click_handler;

new_click_handler 是您要添加的新点击处理程序?

但是您是否需要以编程方式为每个项目添加一个新的处理程序?Condition_Click您不能只引用您在 xaml 中已有的处理程序中的项目吗?

于 2012-07-11T20:46:20.613 回答