wpf - 数据网格项目源的 MVVM 属性

标签 wpf datagrid itemssource

我有一个数据网格,其 itemsSource 绑定(bind)到使用转换器的多重转换器。

<toolkit:DataGrid AutoGenerateColumns="False">
        <toolkit:DataGrid.ItemsSource>
            <MultiBinding Converter="{StaticResource ProfileConverter}">
                <Binding ElementName="ComboBoxProfiles" Path="SelectedValue" />
                <Binding ElementName="DatePickerTargetDate" Path="SelectedDate" />                   
            </MultiBinding>
        </toolkit:DataGrid.ItemsSource>

这很好,因为只要组合框或日期选择器更改值,网格的 itemsSource 就会更新。

我现在遇到的问题是,在我的 ViewModel 中,我希望能够访问数据网格的 ItemSource 并删除列表中的项目或添加新项目。

当我像这样设置时,如何访问项目源?

非常感谢。

最佳答案

在 ViewModel 中拥有三个属性怎么样:

public DateTime? SelectedDate
{
    get{return _selectedDate;}
    set
    { 
         _selectedDate = value;
         UpdateItemsSource();
         OnPropertyChanged("SelectedDate");
    }
}
public object SelectedComboBoxValue
{
    get{return _selectedComboBoxValue;}
    set
    { 
         _selectedComboBoxValue= value;
         UpdateItemsSource();
         OnPropertyChanged("SelectedComboBoxValue");
    }
 }
 private void UpdateItemsSource()
 { 
    _itemsSource = //Some fancy expression based on the two fields.
    OnPropertyChanged("ItemsSource");
 }
 public IEnumerable ItemsSource
 {
     get{return _itemsSource;}
 }

然后将日期选择器、组合框和数据网格绑定(bind)到各自的值。

希望这有帮助。

关于wpf - 数据网格项目源的 MVVM 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3021940/

相关文章:

c# - 更改 WPF 数据网格行颜色

c# - 如何向分组的 WPF 数据网格项添加额外的属性计数?

reactjs - 如何使用 MUI 的数据网格对多值数组列启用过滤和排序?

wpf - DataTemplate 似乎没有绑定(bind)

c# - WPF 数据网格 : DataGridComboxBox ItemsSource Binding to a Collection of Collections

wpf - 将列表绑定(bind)到 WPF 中的列表框

c# - DispatcherTimer 需要哪个程序集?命名空间不起作用

c# - WPF Richtextbox 以纯文本格式打开 RTF 文件

c# - 如何在 WPF/XAML 中反射(reflect)类的继承?

由于绑定(bind)错误,WPF DataGrid 分组不显示