有谁能告诉我如何在程序创建的列表中连接复选框的单击事件?到目前为止,我只看到了连接静态创建的对象事件的示例,而不是从代码中动态分配的对象。
按照以下代码段中的描述创建列表:
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>
答案 0 :(得分:1)
也许您可以创建要添加到列表框中的元素类型。然后你可以检查这样的点击:
<YOUR DATA TYPE> data = (sender as ListBox).SelectedItem as <YOUR DATA TYPE>;
然后您可以处理这些数据。我希望我可以帮助你解决这个问题。
答案 1 :(得分:0)
cbi.Condition.Click += new_click_handler;
其中new_click_handler是您要添加的新点击处理程序?
但你需要以编程方式为每个项添加一个新的处理程序吗?你不能只在你的xaml中已有的Condition_Click
处理程序中引用该项吗?