2016-01-29 7 views
0

Я начал работу с кастом: фокусное поведение, чтобы установить фокус на первый элемент представления, это отлично работает на базовых элементах управления, но не на обычном я разработалНастройка фокуса с использованием кателя: сосредоточиться на настраиваемом элементе управления

Вот мой код

Главное управление

<views:PortfolioChooserControl x:Name="PortfolioChooserView" DataContext="{Binding PortfolioModel}" Grid.Row="1" Grid.Column="1" 
           LoadDefaultValue="False" AllowNull="False" HorizontalAlignment="Stretch" Margin="5,0,5,0" Height="25" Focusable="True"> 
       <i:Interaction.Behaviors> 
        <catel:Focus FocusDelay="400"/> 
        </i:Interaction.Behaviors> 
      </views:PortfolioChooserControl> 

и вот обычай UserControl

<catel:UserControl x:Class="xxx.Client.WPF.Controls.Portfolio.Views.PortfolioChooserControl" 
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
       xmlns:catel="http://catel.codeplex.com" 
       xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" 
       xmlns:behaviors1="clr-namespace:xxx.Client.WPF.Core.Behaviors;assembly=IF.Tesoreria.Client.WPF.Core" 
       xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
       xmlns:porfolio="clr-namespace:xxx.Client.WPF.Core.DraggingItems.Porfolio;assembly=IF.Tesoreria.Client.WPF.Core" 
       CloseViewModelOnUnloaded="False"> 

<catel:UserControl.Resources> 
    <behaviors1:PortfolioFilteringBehavior x:Key="PortfolioFilteringBehavior"/> 
    <DataTemplate x:Key="PortfolioSearchTemplate"> 
     <StackPanel Orientation="Horizontal"> 
      <TextBlock Text="{Binding Ap_Desc}" FontWeight="SemiBold" /> 
     </StackPanel> 
    </DataTemplate> 
</catel:UserControl.Resources> 

<AdornerDecorator> 
    <telerik:RadAutoCompleteBox 
     x:Name="PortfolioCompleteBox" 
     TextSearchMode="Contains" 
     AutoCompleteMode="Suggest" 
     SelectionMode="Single" 
     DisplayMemberPath="Ap_Desc" 
     SelectedItem="{Binding SelectedItem, Mode=TwoWay, ValidatesOnDataErrors=True}" 
     SearchText="{Binding SearchTextPortfolio, Mode=TwoWay}" 
     ItemsSource="{Binding PortfolioList}" 
     HorizontalAlignment="Stretch" 
     FilteringBehavior="{StaticResource PortfolioFilteringBehavior}" 
     DropDownItemTemplate="{StaticResource PortfolioSearchTemplate}" 
     AllowDrop="True"> 
     <i:Interaction.Behaviors> 
      <porfolio:PortfolioDropperBehavior></porfolio:PortfolioDropperBehavior> 
      <!--<catel:Focus FocusDelay="400" />--> 
     </i:Interaction.Behaviors> 
    </telerik:RadAutoCompleteBox> 
</AdornerDecorator> 

Если я кладу поведение в пользовательском элементе управления (вы видите его комментарий) он работает, но эта проблема причины, когда я 2 портфеля внутри вида, так как она ориентирована на последнем ...

Как может Я это исправить? Заранее спасибо

ответ

0

Ваше портфолиоChooserControl, вероятно, имеет сетку контейнеров, которая также может извлекать фокус. Обязательно отключите извлечение фокуса на каждый контейнер, который не должен фокусироваться.

+0

Я наклеил весь код моего портфолиоChooserControl, но нет сетки или так далее, я также попытался прокомментировать adorner ... – advapi