在C# WPF MVVM模式中,使用数据库中的数据填充列表框(ListBox)通常涉及以下几个步骤:
public class MainViewModel : INotifyPropertyChanged
{
private string _selectedItem;
public string SelectedItem
{
get { return _selectedItem; }
set
{
_selectedItem = value;
OnPropertyChanged(nameof(SelectedItem));
LoadListBoxData();
}
}
public ObservableCollection<string> ListBoxItems { get; set; } = new ObservableCollection<string>();
public MainViewModel()
{
// 初始化组合框数据
ComboBoxItems = new List<string> { "Option1", "Option2", "Option3" };
}
private void LoadListBoxData()
{
// 根据SelectedItem从数据库加载数据
// 这里只是一个示例,实际应调用数据库访问方法
ListBoxItems.Clear();
if (SelectedItem == "Option1")
{
ListBoxItems.Add("Data for Option1");
}
else if (SelectedItem == "Option2")
{
ListBoxItems.Add("Data for Option2");
}
// ... 其他选项
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
<Window x:Class="YourNamespace.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
<local:MainViewModel/>
</Window.DataContext>
<StackPanel>
<ComboBox ItemsSource="{Binding ComboBoxItems}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}"/>
<ListBox ItemsSource="{Binding ListBoxItems}"/>
</StackPanel>
</Window>
SelectedItem
属性更改时触发了LoadListBoxData
方法,并且该方法正确更新了ListBoxItems
集合。通过以上步骤和代码示例,你应该能够在C# WPF MVVM项目中实现根据组合框选择动态填充列表框的功能。
领取专属 10元无门槛券
手把手带您无忧上云