Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > .NET > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 22.06.2013, 22:03   #1
artemoning
Пользователь
 
Регистрация: 20.09.2012
Сообщений: 23
По умолчанию Проблема с TwoWay Binding

Для начала хочу объяснить суть задачи. Хочу создать объект DataGrid, который будет принимать информацию с колекции элементов типа ObservableCollection. При этом хочу привязать изминение в DataGrid к своей колекции. Если использовать обычные колонки то все нормально (<DataGridTextColumn Header="Оценка" Binding="{Binding Path=Mark}" IsReadOnly="True" />). Но для очтальных свойств обектов колекции я использую DataGridTemplateColumn с внутринимым TextBox.

Вопрос: как информацию в TextBox привязать к колекции, чтобы изминения влияли в обеих свойствах?

Код в студию. XAML:
Код:
<DataGrid x:Name="dgMain" AutoGenerateColumns="False" Grid.Row="1" CanUserDeleteRows="False">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Оценка" Binding="{Binding Path=Mark, Mode=TwoWay}" IsReadOnly="True" />
                    <DataGridTemplateColumn Header="Мин. % балов" Width="*">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <TextBox Text="{Binding Path=Percent}" MaxLength="3" PreviewTextInput="TextBox_PreviewTextInput" TextAlignment="Center" />
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                    <DataGridTemplateColumn Header="Название оценки" Width="*">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <TextBox Text="{Binding Path=MarkName, Mode=TwoWay}" TextAlignment="Center" />
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
            </DataGrid>
Сама привязка даных:
Код:
ObservableCollection<TesterLibrary.Evaluation> temp = new ObservableCollection<TesterLibrary.Evaluation>();
dgMain.ItemsSource = temp;
Извминения в temp не влияют на таблицу DataGrid. Как решить проблему?
artemoning вне форума Ответить с цитированием
Старый 26.06.2013, 17:00   #2
artemoning
Пользователь
 
Регистрация: 20.09.2012
Сообщений: 23
По умолчанию

Спасибо всем, за такое множество ответов) Проблема решена, свойство "UpdateSourceTrigger=PropertyChange d" разрулило ситуацию. Тему можно считать закрытой.
artemoning вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WPF DataGrid Binding RomanA WPF, UWP, WinRT, XAML 0 28.02.2013 14:54
Binding Source БД Сохранение zargandr1 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 22.04.2011 09:36
Binding Source БД Сохранение zargandr1 C# (си шарп) 0 20.04.2011 17:56
проблема с binding source и update Vitamin125 Общие вопросы .NET 0 20.05.2010 14:38
Что такое Binding у IdTCPServer? TwiX Работа с сетью в Delphi 1 01.03.2010 15:09


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS