datagrid itemssource的MVVM属性

时间:2010-06-11 10:15:39

标签: wpf datagrid itemssource

我有一个datagrid,其itemsSource绑定到使用转换器的多路转换器。

<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,并删除列表中的项目或添加新项目。

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

非常感谢。

1 个答案:

答案 0 :(得分:4)

如何在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;}
 }

然后将datepicker,combobox和datagrid绑定到相应的值。

希望这有帮助。