Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как проверить адекватность работы байдинга в WPF? / 10 сообщений из 10, страница 1 из 1
18.01.2012, 01:46
    #37619152
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить адекватность работы байдинга в WPF?
Есть коллекция, которая служит источником данных для itemsControl-а на форме.
В коллекции один элемент.
Но почему-то этот элемент по индексу [0] может запрашиваться несколько раз (четыре).

Меня это как-то смущает.

Коллекция же из четырех элементов может опрашиваться в странном порядке 0,1,2,3,0,0,2

Это же ненормально? Как проверить - кто запросил доступ по индексатору??

Спасибо.
...
Рейтинг: 0 / 0
18.01.2012, 12:41
    #37619725
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить адекватность работы байдинга в WPF?
Monochromatique,

а каак ты понял, что запрашивается четыре раза?
сидел в дебаг окне?
или подсчитал в переменной?
...
Рейтинг: 0 / 0
18.01.2012, 14:54
    #37620169
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить адекватность работы байдинга в WPF?
AlexeiK,

Как вариант, брейкпоинт в get свойства.

авторКак проверить - кто запросил доступ по индексатору??
Тоже интересно.

авторНо почему-то этот элемент по индексу [0] может запрашиваться несколько раз (четыре).
Элемент коллекции может запрашиваться несколько раз, если контрол неявно делает выбор первого элемента. Тогда это будет один лишний запрос. Может быть, вы где-то биндитесь к SelectedItem ItemsControl'a и поэтому идет несколько обращений к элементу?
...
Рейтинг: 0 / 0
18.01.2012, 15:09
    #37620227
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить адекватность работы байдинга в WPF?
авторКак проверить - кто запросил доступ по индексатору??
Собственно, в тестовом проекте я вижу откуда я попал в геттер.

тест
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<UserControl x:Class="SilverlightApplication57.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" Background="White">
        <TextBlock Text="{Binding Text}" />
    </Grid>
</UserControl>


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
namespace SilverlightApplication57 {
    public partial class MainPage : UserControl {
        string _text;
        public string Text { get { return _text; } set { _text = value; } }

        public MainPage() {
            InitializeComponent();
            Text = "Text";
            this.DataContext = this;
        }
    }
}


Брейкпойнт отработал в тот момент, когда произошло присвоение датаконтекста, которое вызвало запрос значения к которому сделана привязка.
...
Рейтинг: 0 / 0
18.01.2012, 15:09
    #37620232
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить адекватность работы байдинга в WPF?
2 AlexeiK
У меня коллекция реализует this[int index]
вот там и ловлю.


2 enigmatic
На форме лежит ContentControl.
Его свойство Content привязано к ListBox (В данном случае).
itemsSource listbox-а привязано к вышеозвученной коллекции.

И вот я вижу, что коллекция получает запросы по индексу[0] аж четыре раза.

И не понимаю - кто шлет эти запросы. А хотелось бы, ибо коллекция делает достаточно трудоемкие вещи, формируя элемент на отдачу.
...
Рейтинг: 0 / 0
18.01.2012, 15:11
    #37620239
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить адекватность работы байдинга в WPF?
AlexeiKсидел в дебаг окне?
или подсчитал в переменной?
...
Рейтинг: 0 / 0
18.01.2012, 16:14
    #37620435
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить адекватность работы байдинга в WPF?
Monochromatique,

авторвот там и ловлю.
Так посмотрите стек вызовов и узнайте кто шлет.
...
Рейтинг: 0 / 0
18.01.2012, 17:31
    #37620691
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить адекватность работы байдинга в WPF?
enigmaticMonochromatique,

авторвот там и ловлю.
Так посмотрите стек вызовов и узнайте кто шлет.

Стек и }{AML-овскую привязку покажет?
...
Рейтинг: 0 / 0
19.01.2012, 07:07
    #37621325
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить адекватность работы байдинга в WPF?
Monochromatique,

Ну да. Показывает же что инициировало запрос к геттеру на картинке экраном выше.
Посмотрите в сторону отладки биндингов в пятом сильверлайте.
...
Рейтинг: 0 / 0
19.01.2012, 07:38
    #37621330
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить адекватность работы байдинга в WPF?
В смысле,
enigmaticПосмотрите ещё в сторону отладки биндингов в пятом сильверлайте.
Возможно, там более наглядно/удобно, чем стек вызовов.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как проверить адекватность работы байдинга в WPF? / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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