Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2013, 23: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, 18:00   #2
artemoning
Пользователь
 
Регистрация: 20.09.2012
Сообщений: 23
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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