c# - 如何将列表框选定的项目分配给源属性

标签 c# wpf data-binding mvvm xaml-binding

我希望当用户选择一个或多个项目时我的源属性会得到更新。我尝试过使用绑定(bind)模式 OneWayToSource 但这没有帮助。下面是 XAML 和 ViewModel 代码:

<ListBox  x:Name="ItemsListBox" SelectionMode="Multiple" Height="300" 
          ItemsSource="{Binding ResultSet}"
          SelectedItem="{Binding SelectedItems,Mode=OneWayToSource}">

private List<string> _selectedItems;
public List<string> SelectedItems
{
    get
    {
        return _selectedItems;
    }
    set
    {
        _selectedModeItems = value;
        NotifyPropertyChanged("SelectedItems");
    }
}

我已经采用了使用附加行为的方法并且它有效,但是有没有更简单的方法?

最佳答案

你的问题应该是这样的。

How to get multiple selected items from the ListBox in WPF with MVVM?

好吧,您可以从以下 stackoverflow 线程中得到答案。

link 1

link 2

您只需在 ResultSet View 模型中定义 IsSelected 属性即可。然后,如果您想在任何时候获取选定的项目,只需从 ResultSet 中获取“IsSelected”属性设置为 true 的项目即可。

关于c# - 如何将列表框选定的项目分配给源属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15268643/

相关文章:

c# - ASP.net LINQ : return items where id equals a variable

c# - 创建 BitmapImage 并为其应用特定的 Color

c# - IDataErrorInfo.this[string propertyName] 在 C# 中如何工作?

silverlight - Windows Phone 7 silverlight 用户控制 : data binding not working on custom property

c# - 有没有办法覆盖列表框中所有项目的颜色?

c# - Doxygen 没有记录静态类?

c# - 如何为每个必需的属性设置相同的参数

c# - 内容中的 RestSharp Json 而不是数据中的

wpf - 如何在绑定(bind)到 WPF 中的 float 据类型时禁用浮点验证器?

wpf - ListView 与 ListViewItem 的 "IsSelected"属性绑定(bind)