如何在按钮上删除模板单击
本文关键字:单击 删除 按钮 | 更新日期: 2023-09-27 18:08:44
我有ControlTemplate
,它被用作ListBox
内部的资源,我试图删除模板,即在Button
点击上完全从ListBox
中删除它下面是模板
<ControlTemplate x:Key="tasktemplate1">
<Canvas Height="50" Width="850">
<Label Content="{Binding XPath=task[1]/name}" Height="30" Width="170" Canvas.Top="10" Canvas.Left="150" Background="LightGray">
</Label>
<TextBox Height="30" Width="120" Canvas.Top="10" Canvas.Left="370" Background="AliceBlue"></TextBox>
<Label Canvas.Left="500" Canvas.Top="10">$</Label>
<Button Click="deletebuttonclick" Canvas.Top="12" Height="10" Width="30" Canvas.Left="600" ></Button>
</Canvas>
</ControlTemplate>
下面是ListBox
的代码 <TabItem>
<Canvas Height="700" Width="850">
<ListBox x:Name="listBox" Height="700" Width="850">
<ListBoxItem DataContext="{Binding Source={StaticResource TaskList}}" Template="{StaticResource tasktemplate1}"/>
</ListBox>
</Canvas>
</TabItem>
后面的代码是用于Button
点击
private void deletebuttonclick(object sender,RoutedEventArgs e)
{
var r=listBox.FindResource("tasktemplate1");
listBox.Items.Remove(r);
}
我哪里做错了,需要帮助,谢谢。
ControlTemplate只是控件的可视化表示,它将是什么样子
因此,您需要从Items集合而不是Template中删除项( ListBoxItem
)。由于模板控件被删除,模板将自动被删除。
private void deletebuttonclick(object sender,RoutedEventArgs e)
{
listBox.Items.RemoveAt(0);
// listBox.Items.Clear(); OR in case want to clear all listBoxItems, use Clear
}