我有一个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,并删除列表中的项目或添加新项目。
当我设置这样的项目源时,如何访问该项目?
非常感谢。
答案 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绑定到相应的值。
希望这有帮助。