Silverlight, itemcontrol LostFocus и GetFocus не стреляют - PullRequest
1 голос
/ 31 января 2011

Ладно, вот такая ситуация:

У меня есть ItemsControl, который содержит несколько дочерних элементов.

дети на самом деле UserControl, это Xaml:

<Grid>
    <Grid.RowDefinitions>
         <RowDefinition Height="Auto" />
         <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <!--DAY HEADER-->
    <Border x:Name="dayHeader" Height="20" BorderBrush="#B0B6BE" BorderThickness="1" Grid.Row="0" Background="{StaticResource WeekHeader}">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>

            <TextBlock  Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center" TextAlignment="Center"
                         TextWrapping="NoWrap" Margin="1.5,0,0,0" Text="18"/>

             <TextBlock  Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center"
                         TextWrapping="NoWrap" Margin="2,0,0,0" Text="Thuesday" />
            </Grid>
    </Border>

    <!--DAY HOURS-->
    <ItemsControl x:Name="dayHours" Grid.Row="1">
         <ItemsControl.ItemTemplate>
              <DataTemplate>
                   <Border Name="dayHourBorder" Height="30" BorderBrush="#B0B6BE" Width="193" Tag="{Binding Index}" BorderThickness="1,0,1,1" Background="AliceBlue"
                                            MouseLeftButtonDown="dayHourBorder_MouseLeftButtonDown" MouseLeftButtonUp="dayHourBorder_MouseLeftButtonUp"
                                                MouseMove="dayHourBorder_MouseMove" />

              </DataTemplate>
         </ItemsControl.ItemTemplate>
    </ItemsControl>
  </Grid>

КОРОТКО это сетка, которая в первом ряду имеет границу а во втором ряду есть ItemsControl.

Хорошо, сейчас ... я хочу, чтобы каждый раз, когда я нажимал между дочерними ItemControls (дневными часами), я хотел, чтобы они выполняли какую-то функцию в событии LostFocus () и GotFocus ().

проблема в том ... что они не стреляют! и он попытался зарегистрироваться на них со всех возможных сторон! HALP.

UPDATE Я попытался выполнить Focus () для MouseLeftButtonDown, но что случилось, он перешел прямо к OnLostFocus, а это не то, что я хочу ... я не понимаю это

Ответы [ 2 ]

0 голосов
/ 17 февраля 2011

Мне удалось решить эту проблему, выполнив это:пузырино когда я говорю ему, что он обработан, он прекращает пузыриться и не теряет фокус.

0 голосов
/ 31 января 2011

Здесь - обзор фокусировки в Silverlight. В статье упоминаются четыре условия, которые должны быть выполнены, чтобы контроль получил фокус. Вы должны проверить эти четыре условия для вашего контроля, и это должно быть хорошо, я полагаю.

Вы также должны учитывать, на каком элементе вы хотите получать эти события, поскольку GotFocus и LostFocus являются всплывающими событиями.

...