WPF ListBox和List的双向绑定
时间: 2023-12-03 22:44:52 浏览: 276
WPF ListBox和List的双向绑定可以通过使用数据绑定来实现。下面是一个简单的示例:
首先,你需要在你的数据模型中定义一个List属性,例如:
```csharp
public class MyViewModel : INotifyPropertyChanged
{
private List<string> _myList;
public List<string> MyList
{
get { return _myList; }
set
{
_myList = value;
OnPropertyChanged(nameof(MyList));
}
}
// 实现INotifyPropertyChanged接口
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
```
然后,你可以在你的 XAML 中创建一个 ListBox 控件,并将其 ItemsSource 属性绑定到 MyList 属性:
```xaml
<ListBox ItemsSource="{Binding MyList}" />
```
接下来,你需要在代码中设置 ListBox 的 DataContext 为你的数据模型实例,并确保开启了数据上下文:
```csharp
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new MyViewModel();
}
}
```
现在,当你修改 MyList 属性时,ListBox 中的内容会自动更新。同时,当你选择 ListBox 中的项时,也可以更新 MyList 属性。这是因为 ListBox 默认情况下使用双向绑定。
希望这个例子能帮到你!
阅读全文