WPF Combobox изменяет неправильные поля в datatable - PullRequest
0 голосов
/ 20 ноября 2018

Я работаю над проектом VB.net & WPF, который содержит данные с помощью комбинированного списка.Если ячейка с комбинированным списком не редактируется, выбранное значение комбинированного списка отображается в текстовом блоке.

На моем собственном ПК (Windows 10) все работает нормально.Однако, как только я перенесу программу на ПК моего клиента (Windows 7), поля со списком начинают работать некорректно.Когда я изменяю значение одного из выпадающих списков, меняются и другие поля.Самое странное, что иногда все другие поля в одном столбце меняются, а иногда - только несколько.Но в итоге должно измениться только измененное поле со списком.

Я записал 2 небольших клипа (см. URL-адрес ниже), в которых вы можете увидеть, как он должен работать (верхний) и как он работает в Windows 7 (нижний).

https://imgur.com/gallery/F5MKnZv

Это код XAML текста / комбинированного списка:

<DataGridTemplateColumn Header="Reason for Write Off" >
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=reason, UpdateSourceTrigger=PropertyChanged}"></TextBlock>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <ComboBox Name="ComboBox1" ItemsSource="{StaticResource ComboBoxReasonItems}" SelectedItem="{Binding Path=reason, UpdateSourceTrigger=PropertyChanged}" IsSynchronizedWithCurrentItem="True" ></ComboBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>

1 Ответ

0 голосов
/ 22 ноября 2018

Если для свойства IsSynchronizedWithCurrentItem установлено значение true, оно синхронизирует выбранный элемент в поле со списком ItemsSource.Поскольку все «строки» связываются с одним и тем же статическим списком, и все они синхронизируются, это поведение ожидается.

См. Документы Microsoft

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