2015-11-24 3 views
0

Я пытаюсь запустить событие SearchMetroTextBox TextBoxHelper.ButtonCommand, и мне не повезло. Вот шаги, которые я предпринял.mahapps.metro TextBoxHelper.ButtonCommand не срабатывает при использовании SimpleCommand

  1. Из приложения Demo я создаю файл MahApps.Metro.Resources.dll и ссылаюсь на это.

  2. Из приложения Демо mahapps.metro, я скопировал следующий класс:

    общественного класса SimpleCommand: ICommand
    {
    ... осуществление ...
    }

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

    <Style x:Key="BrowseMetroTextBox" TargetType="{x:Type TextBox}" BasedOn="{StaticResource SearchMetroTextBox}"> 
         <Style.Triggers> 
          <Trigger Property="Controls:TextBoxHelper.HasText" Value="False"> 
           <Setter Property="Controls:TextBoxHelper.Watermark" Value="Select save location..." /> 
          </Trigger> 
         </Style.Triggers> 
         <Setter Property="Controls:TextBoxHelper.ButtonTemplate"> 
          <Setter.Value> 
           <ControlTemplate TargetType="{x:Type Button}"> 
            <Grid Background="{TemplateBinding Background}"> 
             <Grid x:Name="contentPresenter" 
              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
              Margin="{TemplateBinding Padding}" 
              VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 
              SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
              Opacity="0.75"> 
              <Canvas Width="15" Height="15" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0"> 
               <!-- x:Key="appbar_folder_ellipsis"--> 
               <Path Width="15.7781" Height="15.7781" Stretch="Fill" Fill="{DynamicResource AccentColorBrush}" Data="F1 M 21,30.0001L 55.9999,30.0001L 55.9999,50L 21,50L 21,30.0001 Z M 52,28L 37,28C 38,25 39.4999,24.0001 39.4999,24.0001L 50.75,24C 51.3023,24 52,24.6977 52,25.25L 52,28 Z M 53.5,52C 54.8807,52 56,53.1193 56,54.5C 56,55.8807 54.8807,57 53.5,57C 52.1193,57 51,55.8807 51,54.5C 51,53.1193 52.1193,52 53.5,52 Z M 46.5,52C 47.8807,52 49,53.1193 49,54.5C 49,55.8807 47.8807,57 46.5,57C 45.1193,57 44,55.8807 44,54.5C 44,53.1193 45.1193,52 46.5,52 Z M 39.5,52C 40.8807,52 42,53.1193 42,54.5C 42,55.8807 40.8807,57 39.5,57C 38.1193,57 37,55.8807 37,54.5C 37,53.1193 38.1193,52 39.5,52 Z " /> 
              </Canvas> 
             </Grid> 
            </Grid> 
            <ControlTemplate.Triggers> 
             <Trigger Property="IsPressed" Value="True"> 
              <Setter Property="Foreground" Value="{DynamicResource WhiteBrush}" /> 
              <Setter Property="Background" Value="{DynamicResource AccentColorBrush}" /> 
             </Trigger> 
            </ControlTemplate.Triggers> 
           </ControlTemplate> 
          </Setter.Value> 
         </Setter> 
        </Style> 
    
  4. Из приложения Demo я скопировал TextBoxButtonCmdWithParameter, переименовав его в FileBrowseCommand.

  5. Я создал следующий Textboxes (обратите внимание, один мой просматривает текстовое поле и один стандартный поиск текстового поля):

    <TextBox HorizontalAlignment="Stretch" Height="23" VerticalAlignment="Top" Margin="10,26,10,0" Name="employeeLocation" 
         Controls:TextBoxHelper.ButtonCommand="{Binding FileBrowseCommand, Mode=OneWay}" 
         Controls:TextBoxHelper.ButtonCommandParameter="{Binding ElementName=employeeLocation, Path=Text}" 
         Style="{StaticResource BrowseMetroTextBox}"/> 
    
    <TextBox HorizontalAlignment="Stretch" Height="23" VerticalAlignment="Top" Margin="10,83,10,0" Name="adminLocation" 
         Controls:TextBoxHelper.ButtonCommand="{Binding FileBrowseCommand, Mode=OneWay}" 
         Controls:TextBoxHelper.ButtonCommandParameter="{Binding ElementName=adminLocation, Path=Text}" 
         Style="{StaticResource SearchMetroTextBox}"/> 
    

Однако, когда я нажмите на поиск или кнопку просмотра, я никогда удалите обработчик события. Есть что-то еще, что мне не хватает?

ответ

0

я столкнулся с той же проблемой, я решил, изменив Controls:TextBoxHelper.ButtonCommand к вложенному элементу в моем текстовом поле:

<Controls:TextBoxHelper.ButtonCommand> 
    <Binding Path="FileBrowseCommand" Mode="OneWay" /> 
</Controls:TextBoxHelper.ButtonCommand>` 

 Смежные вопросы

  • Нет связанных вопросов^_^