2010-06-11 102 views
2

我有一个dataSource,其itemsSource绑定到一个使用转换器的多变换器。datagrid的MVVM属性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我想能够访问我的DataGrid的ItemSource并删除列表中的项目或添加新的。

当我把它设置成这样的时候,如何访问itemssource?

非常感谢。

回答

4

如何具有在视图模型三个属性:

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;} 
} 

然后结合日期选择器,组合框和数据网格到相应的值。

希望这会有所帮助。

+0

非常感谢。这就是我需要的东西。很好地工作。 – 2010-06-11 14:34:26