Как остановить автоматическое обновление WPF ListBox Databinded для объекта EntityFramework - PullRequest
2 голосов
/ 04 июня 2010

У меня есть страница Xaml с списком с привязкой к данным и сеткой сведений для создания или обновления выбранного элемента.

Мой Page.DataContext привязан к таблице модели данных сущности ADO.NET ("Универс").

    private void Page_Loaded(object sender, RoutedEventArgs e)
    {
        SEPDC = new Models.SEP();

        universViewSource = new CollectionViewSource();
        universViewSource.Source = SEPDC.Univers.Execute(System.Data.Objects.MergeOption.AppendOnly);

        DataContext = universViewSource;
    }

Xaml-код ListBox:

<ListBox DisplayMemberPath="Nom" ItemsSource="{Binding}" Name="universListBox" SelectedValuePath="IdUnivers"/>

Когда я выбираю элемент в ListBox, детали сетки автоматически отображают информацию о выбранном элементе

Здесь текстовое поле «Nom» использует привязку данных TwoWay:

<TextBox Name="nomTextBox" Text="{Binding Path=Nom, Mode=TwoWay}" />

Когда я изменяю TextBox "Nom", ListBox автоматически обновляется. Отлично ... Но я не вызывал метод SaveChanges моего объекта SEPDC DataContext ...

Как я могу остановить автоматическое обновление моего ListBox, пока я не вызову явный метод SaveChanges и, если возможно, без использования опции Binding UpdateSourceTrigger = Explicit?

Привет.

Ответы [ 2 ]

0 голосов
/ 06 июня 2010

Я использую эту технику, но мне приходится заново создавать ListBox SEPDC каждый раз, когда я обновляю ListBox.

        List<Models.Univers> list;

        using (Models.SEP dc = new Models.SEP())
            list = dc.Univers.Execute(System.Data.Objects.MergeOption.AppendOnly).ToList();

        universListBox.DataContext = list;

Метод Refresh не работает.

Привет

0 голосов
/ 05 июня 2010

Вы можете использовать два отдельных объекта контекста данных объекта (SEPDC). Ваш ListBox привязан к одному, а ваша сетка подробностей - к другому. Когда SelectedValue изменяется в ListBox, найдите ту же сущность в контексте данных сущности детальной сетки и установите ее. После сохранения изменений из контекста данных сущности подробной сетки обновите значение для ListBox.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...