Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TextBox.Visibility от ListBoxItem IsFocused 
:(
    Опции темы
Человек01
Дата 22.3.2009, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 20.2.2009
Где: Абакан, респ. Хак асия, Россия

Репутация: 2
Всего: 2



Диспозиция:
Есть ListBox в нем соответственно ListBoxItem
Есть отдельно TextBox
Вопрос: Хочется сделать, что если хоть один ListBoxItem IsFocused = True, то TextBox.Visibility="Collapsed"


PM MAIL ICQ   Вверх
Человек01
Дата 22.3.2009, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 20.2.2009
Где: Абакан, респ. Хак асия, Россия

Репутация: 2
Всего: 2



Я сделал так:
Создал свой класс от ListBox
Код

public class ElListBox : ListBox
    {
        public ElListBox()
            : base()
        {          
            this.AddHandler(ListBoxItem.GotFocusEvent, new RoutedEventHandler(item_GotFocus));
            this.AddHandler(ListBoxItem.LostFocusEvent, new RoutedEventHandler(item_LostFocus));            
        }

        void item_LostFocus(object sender, RoutedEventArgs e)
        {
            ItemsFocused = false;
        }

        void item_GotFocus(object sender, RoutedEventArgs e)
        {
            ItemsFocused = true;
        }

        public bool ItemsFocused
        {
            get { return (bool)this.GetValue(ItemsFocusedProperty); }
            set { this.SetValue(ItemsFocusedProperty, value); }
        }
        public static readonly DependencyProperty ItemsFocusedProperty = DependencyProperty.Register(
                "ItemsFocused", typeof(bool), typeof(ElListBox), new PropertyMetadata(false));
}


И создал следующий Trigger на ItemsFocusedProperty и применил к TextBox
Код

<Style x:Key="trigger" TargetType="FrameworkElement">
    <Style.Triggers>
      <DataTrigger Binding="{Binding Path=ItemsFocused, ElementName=listbox1}" Value="True">
            <Setter Property="Visibility" Value="Collapsed"/>
       </DataTrigger>
    </Style.Triggers>
</Style>


P.S.: А спрашивал я потому, что может быть есть более грамотный способ.   smile Если есть делитесь smile 

PM MAIL ICQ   Вверх
Idsa
Дата 22.3.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 2
Всего: 62



У ListBoxItem есть события GotFocus и LostFocus. Думаю, они подойдут для реализации логики 
Цитата(Человек01 @  22.3.2009,  19:12 Найти цитируемый пост)
если хоть один ListBoxItem IsFocused = True, то TextBox.Visibility="Collapsed"


Обработчики этих событий можно определить декларативно, задав свойству ListBox.ItemContainerStyle неявный (не помню, как он называется на самом деле) стиль.

Код

<Window x:Class="WpfApplication11.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
  <Window.Resources>
    <Style x:Key="ListBoxItemStyle" TargetType="ListBoxItem">
      <EventSetter Event="GotFocus" Handler="ListBoxItem_GotFocus"></EventSetter>
      <EventSetter Event="LostFocus" Handler="ListBoxItem_LostFocus"></EventSetter>
    </Style>
  </Window.Resources>
  <ListBox ItemContainerStyle="{StaticResource ListBoxItemStyle}">
    
  </ListBox>
</Window>
 


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Человек01
Дата 22.3.2009, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 20.2.2009
Где: Абакан, респ. Хак асия, Россия

Репутация: 2
Всего: 2



Idsa, о спасибо, тоже вариант.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.