powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
25 сообщений из 37, страница 1 из 2
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37817474
Goshach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, подскажите пожалуйста, второй день уже мучаюсь ...

У меня есть объект со свойством типа List<Contact>. Этот объект я привязываю к grid окна и в разметке указываю, что datagrid привязывается к списку контактов. В результате данные отображаются, но изменения в DataGrid не возвращаются в объект.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<Grid Name="grdContacts">
        
        <DataGrid Name="contactsGrid" ItemsSource="{Binding Contacts}" Grid.Column="0" Grid.ColumnSpan="2" AutoGenerateColumns="False" CanUserAddRows="False">
            <DataGrid.Columns>
                <DataGridTemplateColumn>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox IsChecked="{Binding Path=IsSelected}"></CheckBox>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTextColumn Binding="{Binding Path=Sex}" IsReadOnly="True" Width="1*"></DataGridTextColumn>
                <DataGridTextColumn Binding="{Binding Path=PhoneNumber}"  IsReadOnly="True" Width="3*"></DataGridTextColumn>
                <DataGridTextColumn Binding="{Binding Path=LastName}"  IsReadOnly="True" Width="3*"></DataGridTextColumn>
                <DataGridTextColumn Binding="{Binding Path=Name}"  IsReadOnly="True"  Width="3*"></DataGridTextColumn>
                <DataGridTextColumn Binding="{Binding Path=DateOfBirth, StringFormat='{}{0:dd.MM.yyyy}'}"  Width="3*" IsReadOnly="True"></DataGridTextColumn>
                <DataGridTextColumn Binding="{Binding Path=Parameter1}"  IsReadOnly="True" Width="3*"></DataGridTextColumn>
                <DataGridTextColumn Binding="{Binding Path=Parameter2}"  IsReadOnly="True" Width="3*"></DataGridTextColumn>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>



и сама привязка:

Код: c#
1.
this.grdContacts.DataContext = ContactBook.Instance;



вот ... и не могу понять в чем может быть дело ...
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37817561
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goshach,

а что изменять-то надо?

если поле IsSelected, то:
Код: html
1.
<CheckBox IsChecked="{Binding Path=IsSelected, Mode=TwoWay}"></CheckBox>



так же вы не показали как реализовали свой класс Contact
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37817621
Goshach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изменяю CheckBox и изменения соответственно должны передаться соответствующему свойству контакта, но это не происходит.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 public class Contact : IEquatable<Contact>, INotifyPropertyChanged
    {
        public int ID { get; set; }

        public string Name { get; set; }

        public string LastName { get; set; }

        public string MiddleName { get; set; }

        public Sexs Sex { get; set; }

        public string PhoneNumber { get; set; }
        
        ...
    }



по моему только это важно для данного функционала, остальные методы и свойства вообще не имеют отношения к делу
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37819755
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goshach,

INotifyPropertyChanged - нужно реализовывать и прописывать в каждом Сеттере у каждого Свойства.
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37819771
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уТКаINotifyPropertyChanged - нужно реализовывать и прописывать в каждом Сеттере у каждого Свойства.В данном случае значения не имеет.

GoshachДля редактирования надо прописывать DataGridTemplateColumn.CellEditingTemplate.
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37822509
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КуТКаINotifyPropertyChanged - нужно реализовывать и прописывать в каждом Сеттере у каждого Свойства.В данном случае значения не имеет.
я считаю вам нужно пойти и почитать MSDN на эту тему, вы говорите чепуху.
Реализация INotifyPropertyChanged очень даже имеет значение.
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37822658
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уТКа,

ага поддерживаю.
это же не DP а просто свойства. а для них нужно raiseevent поднимать.
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823093
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уТКа я считаю вам нужно пойти и почитать MSDN на эту тему, вы говорите чепуху.
Реализация INotifyPropertyChanged очень даже имеет значение.Вы можете считать как угодно. Пока не представите показательный тест - это просто слова. Тест должен продемонстрировать, что при отсутствии INotifyPropertyChanged результаты редактирования ДатаГрида ( в принципе, необязательно ДатаГрид, можно любой контрол, редактирующий данные ) не попадают во вьюмодель, а при добавлении INotifyPropertyChanged всё начинает работать.
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823311
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

ого, человек не читающий документацию решил с меня спросить.

иди читай мат.часть (с) кто-то
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823338
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уТКаиди читай мат.часть (с) кто-тоУх ты... Жестоко...
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823341
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уТКа,

вообще-то Алексей К прав.
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823371
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

так докажите, в чем проблема?

мой опыт показывает обратное.
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823419
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уТКа,

Ловите...
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823439
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

Код: c#
\r\npublic partial class MainWindow : Window\r\n    {\r\n        TestViewModel _vm;\r\n        public MainWindow()\r\n        {\r\n            InitializeComponent();\r\n            _vm = new TestViewModel();\r\n            _vm.TxtData = "Simple text data";\r\n            this.DataContext = _vm;\r\n        }\r\n\r\n        private class TestViewModel\r\n        {\r\n            public string TxtData { get; set; }\r\n        }\r\n\r\n        private void Button_Click_1(object sender, RoutedEventArgs e)\r\n        {\r\n            if (_vm != null)\r\n            {\r\n                _vm.TxtData += "MessageBox"; // Для тех кто в танке, это изменение должно отобразиться в UI\r\n                MessageBox.Show(_vm.TxtData);\r\n            }\r\n        }\r\n    }\r\n
\r\n
спасибо, данный пример доказывает вашу некомпетентность в данном вопросе, прошу пройти с вашим "товарищем" на MSDN и читать до полного просветления.

на этом я и мои съеденные собаки прощаемся с вами :D
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823476
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уТКа,

ВЫ правда ВНИМАТЕЛЬНО читаете тему?
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823477
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А то совершенно не похоже)
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823479
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goshach В результате данные отображаются, но изменения в DataGrid не возвращаются в объект.
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823481
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уТКа,

специально для корейцев (или китайцев, не помню кто там именно собак ест) поясняю, - не происходит изменение свойтва во ViewModel при изменении чего-то на форме. Во всяком случае именно так пишет автор.

GoshachИзменяю CheckBox и изменения соответственно должны передаться соответствующему свойству контакта, но это не происходит.
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823485
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

филя передает вам привет и просит чистоты эксперимента как у ТС.
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823513
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уТКа,

"Что в лоб, что по лбу" - это про вас) Советую научиться читать, что спрашивают.
P.S. Реализация INotify для свойства IsSelected, как и ожидалось, там ни разу не помогла.

2TS, а что мешает использовать стандартную CheckBoxColumn?
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823517
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

возможно, когда-то в будущем вы поймете о чем я говорит.

пока это за гранью вашего понимания.
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823531
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уТКа,

когда сказать нечего - съезжают на собеседника:)
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823541
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goshach,

у меня заработало с таким кодом:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
				<DataGridTemplateColumn>
					<DataGridTemplateColumn.CellTemplate>
						<DataTemplate>
							<!--Только для отображения значения-->
							<CheckBox IsChecked="{Binding Path=IsSelected}" IsEnabled="False"></CheckBox>
						</DataTemplate>
					</DataGridTemplateColumn.CellTemplate>
					<DataGridTemplateColumn.CellEditingTemplate>
						<DataTemplate>
							<CheckBox IsChecked="{Binding Path=IsSelected, Mode=TwoWay}"></CheckBox>
						</DataTemplate>
					</DataGridTemplateColumn.CellEditingTemplate>
				</DataGridTemplateColumn>


независимо от реализации INotify, так что Алексей К был прав в 12644307 .
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823544
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goshach,

собственно мой пример (по кнопке выводится количество выбранных объектов)
...
Рейтинг: 0 / 0
Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
    #37823546
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

Оригинал автора<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked=" {Binding Path=IsSelected} "></CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
вы подгоняете факты под желаемое, не разобравшись в сути.

...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]