Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как привязаться из ItemTemplate к свойству DataContext / 25 сообщений из 35, страница 1 из 2
11.10.2010, 19:17
    #36893377
skubche
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Возможно нубский вопрос, но поиск увы не помог.
Например, DataContext котрола установлен на объект cо свойством string Header и IList<Name> Names.
В этом контроле имеется ListBox:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<ListBox ItemsSource="{Binding Names}">
     <ListBox.ItemTemplate >
         <DataTemplate>
                    <TextBlock Text="{Binding Header}"/> 
                    <TextBlock Text="{Binding ShortName}"/> 
         </DataTemplate>
      </ListBox.ItemTemplate>
   </ListBox>

Кончено же, Header не покажется так как он ищет его в свойствах Item'a коллекции...
...
Рейтинг: 0 / 0
11.10.2010, 23:10
    #36893657
skubche
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Забыл написать что задача в рамках Silverlight
...
Рейтинг: 0 / 0
12.10.2010, 00:41
    #36893713
skubche
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Подызвративившись придумал решение. Даём корневому элементу имя root и прописываем такую привязку:
Код: plaintext
<TextBlock Text="{Binding ElementName=root, Path=DataContext.Header}"/>
...
Рейтинг: 0 / 0
12.10.2010, 08:04
    #36893835
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Код: plaintext
<TextBlock Text="{Binding DataContext.Header, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBox}}}"/>
...
Рейтинг: 0 / 0
12.10.2010, 09:37
    #36893931
skubche
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Алексей К, спасибо!)
Если бы ещё четвёртый SL поддерживал AncestorType
...
Рейтинг: 0 / 0
12.10.2010, 09:40
    #36893937
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
skubcheАлексей К, спасибо!)
Если бы ещё четвёртый SL поддерживал AncestorTypeА там этого нет? Плохо...
...
Рейтинг: 0 / 0
12.10.2010, 10:10
    #36893992
i
i
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
...
Рейтинг: 0 / 0
12.10.2010, 10:12
    #36893994
i
i
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Может, в пятой версии эти костыли уберут
...
Рейтинг: 0 / 0
09.11.2010, 11:43
    #36944377
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
i Implementing RelativeSource binding in Silverlight
А там случаем нету утечки памяти связанной с private static Dictionary<RelayBindingKey, ValueObject> relayBindings ?
...
Рейтинг: 0 / 0
09.11.2010, 11:48
    #36944395
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Да блин проще самому написать...
...
Рейтинг: 0 / 0
09.11.2010, 12:03
    #36944442
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Алексей Кутечка памяти
Бррр... Ужоснах. В топку технологию.
...
Рейтинг: 0 / 0
09.11.2010, 12:14
    #36944478
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
МСУАлексей Кутечка памяти
Бррр... Ужоснах. В топку технологию.Так и знал.
...
Рейтинг: 0 / 0
09.11.2010, 12:36
    #36944551
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Не для слабонервных
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
    public class BhBindingRelativeSource : Behavior<FrameworkElement>
    {
        public string TargetProperty { get; set; }
        public string SourceProperty { get; set; }
        public string AncestorType { get; set; }
        public IValueConverter Converter { get; set; }

        protected override void OnAttached()
        {
            base.OnAttached();
            AssociatedObject.Loaded += AssociatedObject_Loaded;
            AssociatedObject.Unloaded += AssociatedObject_Unloaded;
        }        

        protected override void OnDetaching()
        {
            base.OnDetaching();
            AssociatedObject.Loaded -= AssociatedObject_Loaded;
            AssociatedObject.Unloaded -= AssociatedObject_Unloaded;
        }

        void AssociatedObject_Loaded(object sender, RoutedEventArgs e)
        {
            var source = Source;
            if (source == null)
            {
                Debug.WriteLine("Ancestor with type " + AncestorType + " not found");
                return;
            }

            var targetDependencyProperty = TargetDependencyProperty;
            if (targetDependencyProperty == null)
            {
                Debug.WriteLine("Dependency property " + TargetProperty + " not found on " + AssociatedObject.GetType().FullName);
                return;
            }

            var binding = new Binding(SourceProperty);
            binding.Source = source;
            binding.Converter = Converter;
            AssociatedObject.SetBinding(targetDependencyProperty, binding);
        }

        void AssociatedObject_Unloaded(object sender, RoutedEventArgs e)
        {
            var targetDependencyProperty = TargetDependencyProperty;

            if (targetDependencyProperty == null)
                return;

            AssociatedObject.ClearValue(targetDependencyProperty);
        }

        DependencyProperty TargetDependencyProperty
        {
            get
            {
                var fieldInfo = AssociatedObject
                    .GetType()
                    .GetField(
                        TargetProperty + "Property",
                        BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy
                    );

                if (fieldInfo != null)
                    return (DependencyProperty)fieldInfo.GetValue(null);

                return null;
            }
        }

        DependencyObject Source
        {
            get
            {
                var result = VisualTreeHelper.GetParent(AssociatedObject);
                while (result != null)
                {
                    if (result.GetType().Name == AncestorType)
                        return result;
                    result = VisualTreeHelper.GetParent(result);
                }                
                return null;
            }
        }
    }
...
Рейтинг: 0 / 0
09.11.2010, 12:43
    #36944571
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Идиотизм...
Возвращаемся на дельфи, где хоть клики нормально дестроятся, где нормально реализованы VMT/DMT и иже...

Первый век вторая четверть нах!
...
Рейтинг: 0 / 0
09.11.2010, 12:44
    #36944575
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Уволитьнах Балмера и его тупорылых ксамл-индусов!
...
Рейтинг: 0 / 0
09.11.2010, 12:55
    #36944612
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
МСУИдиотизм...
Возвращаемся на дельфи, где хоть клики нормально дестроятся, где нормально реализованы VMT/DMT и иже...

Первый век вторая четверть нах!Но утечка в коде от codeproject, написанном каким-то рукожопом.. Чё уж совсем-то. :-)
...
Рейтинг: 0 / 0
09.11.2010, 13:00
    #36944634
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Алексей КНо утечка в коде от codeproject, написанном каким-то рукожопом.. Чё уж совсем-то. :-)
Подскажите пожалуйста, как в процессе отладки в MS VS 2010 определить наличие утечки памяти и как с этим бороться?
...
Рейтинг: 0 / 0
09.11.2010, 13:03
    #36944640
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
CompositumАлексей КНо утечка в коде от codeproject, написанном каким-то рукожопом.. Чё уж совсем-то. :-)
Подскажите пожалуйста, как в процессе отладки в MS VS 2010 определить наличие утечки памяти и как с этим бороться?Ничего умнее наблюдения за расходом памяти в диспетчере задач виндоус не подскажу. :-)
...
Рейтинг: 0 / 0
09.11.2010, 13:06
    #36944649
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Алексей КНо утечка в коде от codeproject, написанном каким-то рукожопом.. Чё уж совсем-то. :-)
"Утекает" даже обычный гавнотекстбокс , акститесь, мой северный (с) друх
...
Рейтинг: 0 / 0
09.11.2010, 13:14
    #36944675
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
МСУАлексей КНо утечка в коде от codeproject, написанном каким-то рукожопом.. Чё уж совсем-то. :-)
"Утекает" даже обычный гавнотекстбокс , акститесь, мой северный (с) друх Но как-то же все делают?
...
Рейтинг: 0 / 0
09.11.2010, 13:16
    #36944687
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Но ведь и сама MS VS 2010 написана на WPF (графическая часть)...
...
Рейтинг: 0 / 0
09.11.2010, 13:20
    #36944701
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Я не понял такого момента - ведь контролы WPF не реализовывают IDisposable, они полностью управляемые, откуда тогда идёт утечка? Ведь не используются неуправляемые ресурсы (если я верно помню прочитанное у Мак-Дональда) - это же не оболочка над GDI+.

А если есть утечка, то как с ней бороться?
...
Рейтинг: 0 / 0
09.11.2010, 13:21
    #36944709
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Алексей КНо как-то же все делают?
Кто все? Хеллоувордщики проектов "Пощупай дома после работы" или Вы про ту парочку конторок, которые имели неосторожность вляпаться в это гуано? ... которое даже по определению не совместимо с ранними версиями ))
Это ж пипец, политика мелкомягких всегда отличалась замечательной чертой - обратная совместимость. И тут на тебе, такой ляп. Людей, кто сидел (щупал дома) на третьей версии (и ранее) индусы отправили в топку. И перекроили "технологию" заново.
Вот что значит современный метод тестирования софта "на живых костях"

P.S. Вы не думайте, я не сторонник грексофилии, я просто пытаюсь рационально всё взвесить. Не более того.
...
Рейтинг: 0 / 0
09.11.2010, 13:26
    #36944724
i
i
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
CompositumАлексей КНо утечка в коде от codeproject, написанном каким-то рукожопом.. Чё уж совсем-то. :-)
Подскажите пожалуйста, как в процессе отладки в MS VS 2010 определить наличие утечки памяти и как с этим бороться?

1 , 2 ,
Ликбез для Муси
...
Рейтинг: 0 / 0
09.11.2010, 13:36
    #36944753
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как привязаться из ItemTemplate к свойству DataContext
Наш гавноед Сева неутолим
9723857
Плюс - меня не интересуют какие-то левые педали с каких-то левых сайтов. Ты кроме подобной левоты можешь что-то существенное заворачивать? Скучно с тобой стало и неинтересно. Евангелисты щас не в почёте, пиши дальше.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как привязаться из ItemTemplate к свойству DataContext / 25 сообщений из 35, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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