【问题标题】:how can I trigger an event when a checkbox in a list is checked选中列表中的复选框时如何触发事件
【发布时间】:2021-04-27 18:40:45
【问题描述】:

我是 wpf 的新手,我决定制作一个简单的待办事项应用程序。我在列表视图中列出任务,任务数量各不相同,所以我创建了一个列表,然后将复选框列表定义为列表视图的项目源。我的问题是选中复选框时无法触发事件。我试过了,但效率不高,直到我移动鼠标,任务才会消失:

private void lw_liste_MouseMove(object sender, MouseEventArgs e)
    {
        for (int i = 0; i < tasks.Count; i++)
        {
            if((bool)tasks.ElementAt(i).IsChecked)
            {
                tasks.RemoveAt(i);
                lw_liste.Items.Refresh();
            }
        }
    }

当列表中的复选框被选中时如何触发事件,以便我可以将它们从列表中删除?

【问题讨论】:

  • 复选框有命令。 stackoverflow.com/questions/5566050/… 我会使用 relativesource 绑定到列表视图的数据上下文。行的数据上下文的命令参数。然后,您可以使用 tye 参数从绑定到列表视图的 itemssource 的 observablecollection 中提供对项目/行视图模型的引用。

标签: c# wpf events


【解决方案1】:

有很多可能性。例如,您可以为检查事件设置一个处理程序,如果您想在后面的代码中执行它(我更喜欢 MVVM):

<ListView.Resources>
    <Style TargetType="CheckBox">
        <EventSetter Event="Checked" Handler="CheckBox_Checked"></EventSetter>
    </Style>
</ListView.Resources>

记住,还有Unchecked事件。

【讨论】:

    猜你喜欢
    • 2013-02-02
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 2019-04-13
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    相关资源
    最近更新 更多