Свойство MVVM для источника данных сетки данных - PullRequest
2 голосов
/ 11 июня 2010

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

Как получить доступ кitemssource, когда я настрою его так?

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

1 Ответ

4 голосов
/ 11 июня 2010

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

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

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

...