2012-07-09 61 views
0

任何人都可以告诉我如何连接编程创建的列表中的复选框的单击事件?到目前为止,我只看到连接静态创建的对象事件的例子,而不是从代码动态分配的事件。c#编程式创建列表事件处理程序howto

如下面的代码片段描述创建的列表:

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> 

回答

1

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

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

然后你就可以使用该数据。我希望我可以帮你解答这个问题。

0

你的意思是像

cbi.Condition.Click += new_click_handler; 

其中new_click_handler是你想要的新的单击处理程序补充的吗?

但你需要以编程方式为每个项目添加一个新的处理程序?难道你不能仅仅引用你已经在你的xaml中已经存在的Condition_Click处理函数中的项目吗?