我想从列表中删除相应的对象,单击“删除”按钮 我已经分配了CommandParameter =“{Binding}”,它返回绑定到相应列表框项目的对象。
但我想在按钮单击上传递RuleConditions对象(ItemsSource =“{Binding RuleConditions}”)作为命令参数,然后从列表中删除对象,然后将其重新绑定到ListBox控件。
XAML代码:
<Window.Resources>
<DataTemplate x:Key="UserTemplate" >
<StackPanel Orientation="Horizontal" >
<TextBox Text="{Binding Name}" Width="50"></TextBox>
<TextBox Text="{Binding Age}" Width="50"></TextBox>
<ComboBox ItemsSource="{Binding RuleType}"
Width="85" Height="20" Margin="5,5,5,5"/>
<ComboBox ItemsSource="{Binding OperatorValues}"
Width="85" Height="20" Margin="5,5,5,5"/>
<Button Content="Delete" Margin="5,5,5,5" Command="{Binding DataContext.ButtonCommand, RelativeSource={RelativeSource AncestorType=ListBox}}" CommandParameter="{Binding}">
</Button>
<Button Content="Add" Margin="5,5,5,5" />
</StackPanel>
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox Name="lbUsers" ItemTemplate="{StaticResource UserTemplate}" ItemsSource="{Binding RuleConditions}">
</ListBox>
</Grid>
请提前告知我任何不充分的信息,提前谢谢
答案 0 :(得分:0)
你可以这样做
<ListBox Name="lbUsers" ItemTemplate="{StaticResource UserTemplate}" ItemsSource="{Binding RuleConditions}"
SelectedItem="{Binding RuleCondition,Mode=TwoWay}">
在ViewModel中创建一个RuleCondition
属性。
然后在DataTemplate
做这样的
<Button Content="Delete" Margin="5,5,5,5" Command="{Binding DataContext.ButtonCommand, ElementName=lbUsers}"/>
您需要做的只是在命令中您需要检查RuleConditions
包含RuleCondition
并从列表中删除RuleCondition
。