繁体   English   中英

C# Wpf 简单的 listviewitem 事件绑定不起作用

[英]C# Wpf simple listviewitem event binding won't work

我有一个非常简单的列表视图,其中 itemsource 绑定到一个集合。 然后我有一个委托命令(来自 Prism),当我点击其中一个项目时我想调用它。 不幸的是,itemsource 中的绑定不起作用。 当我直接在列表视图中设置attachedcommandbehavior 时,它会调用该方法。

也许有人可以帮忙。

<ListView ItemsSource="{Binding col}">
        <ListView.ItemContainerStyle>
            <Style>
                <Setter Property="c:CommandBehavior.Event" Value="PreviewMouseDown"/>
                <Setter Property="c:CommandBehavior.Command" Value="{Binding Command}"/>
            </Style>
        </ListView.ItemContainerStyle>
    </ListView>

 public ObservableCollection<string> col { get; set; }
    public ICommand Command => _Command = _Command ?? new DelegateCommand<object>(e => cmd(e));
    private ICommand _Command;

    public void cmd (object e)
    {
        MessageBox.Show("Clicked");
    }

    public ViewModelCustom()
    {
        col = new ObservableCollection<string>();
        col.Add("a");
        col.Add("b");
        col.Add("C");
    }

谢谢

一种方法是在 ViewModel 中创建属性并跟踪 set 方法而不是命令中的更改

public T SelectedItem
{
   get { return _selectedItem; }
   set 
   { 
       _selectedItem = value; 
       // User selected another element here, do what you want
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM