Свойство MVVM для элементов datagridsource

У меня есть 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 моей сетки данных и либо удалять элементы из списка, либо добавлять новые.

Как мне получить доступ к источнику элементов, если он настроен так?

Большое спасибо.


person Steve Scott    schedule 11.06.2010    source источник


Ответы (1)


Как насчет наличия трех свойств в 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;}
 }

Затем привяжите средство выбора даты, поле со списком и сетку данных к соответствующим значениям.

Надеюсь это поможет.

person Goblin    schedule 11.06.2010
comment
Большое спасибо. Вот такая вещь мне была нужна. Прекрасно работает. - person Steve Scott; 11.06.2010