2016-09-02 13 views
0

私は4つのボタンを画面に表示しています。私は1つのボタンをクリックすると、私は同じUIでグリッドデータを読み込んでいます。4つのボタンのうち1つのボタンだけをハイライトする方法

2番目のボタンをクリックすると、古いデータをクリアして、対応するグリッドの新しいデータをバインドするだけです。

ボタンを1回だけ強調表示したいのですが、それをクリックしただけです。

MVVMパターンを使用していますので、この問題はXAMLでのみ修正する必要があります。

例:

私はそれは選択に基づいて、グリッド上のデータをロードする第一ボタンをクリックします。 ボタン1をハイライト表示する必要があります。

2番目のボタンをクリックすると、ボタン1は通常の状態で、2番目のボタンはハイライト表示されます。

ハイライト表示されるのは、表示されるまで1つのボタンのハイライト表示のみです。

+0

「RadioButton」グループについて説明したようです。 –

答えて

-1

私はあなたがRadioButtonを探していると思います。

<Window.Resources> 
    <ControlTemplate x:Key="RbTemplateKey" TargetType="RadioButton"> 
     <ToggleButton IsChecked="{Binding IsChecked, Mode=TwoWay,RelativeSource={RelativeSource AncestorType=RadioButton, Mode=FindAncestor}}"/> 
    </ControlTemplate> 
</Window.Resources> 

<Grid> 
    <StackPanel Margin="141,148,161,0" Orientation="Horizontal" Background="AliceBlue"> 

     <RadioButton Width="25" Height="25" Margin="10" Template="{StaticResource RbTemplateKey}"/> 
     <RadioButton Width="25" Height="25" Margin="10" Template="{StaticResource RbTemplateKey}"/> 
     <RadioButton Width="25" Height="25" Margin="10" Template="{StaticResource RbTemplateKey}"/> 
     <RadioButton Width="25" Height="25" Margin="10" Template="{StaticResource RbTemplateKey}"/> 

    </StackPanel> 
</Grid> 
+0

ありがとう、RohitとAnjumSKhan ..最後に、私はButtonコントロールをRadioButtonに変更しました。問題は解決される。 – user2366302

+0

@ user2366302誰かが理由を述べずに私の答えをdownvotedしました – AnjumSKhan

+0

私は誰がそれをしたのかわかりません。 – user2366302

0

WPFトリガーを使用する必要があります。あなたの場合はIsPressedです。簡単な例:

<Trigger Property="IsPressed" Value="True"> 
     <Setter Property="Background" Value="Red"/> 
     <Setter Property="BorderBrush" Value="1"/> 
    </Trigger> 

ここでは、それはまだ多分あなたのXAMLを投稿する必要があります動作しない場合は私のため

<Window.Resources> 
    <Style x:Key = "TriggerStyle" TargetType="{x:Type Button}"> 
     <Style.Triggers> 
      <Trigger Property = "IsPressed" Value = "True"> 
       <Setter Property = "Background" Value = "Red" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</Window.Resources> 
<Grid> 

    <Button x:Name="button" Style = "{StaticResource TriggerStyle}" Content="Button" HorizontalAlignment="Left" Margin="103,45,0,0" VerticalAlignment="Top" Width="75"/> 
    <Button x:Name="button1" Style = "{StaticResource TriggerStyle}" Content="Button" HorizontalAlignment="Left" Margin="163,130,0,0" VerticalAlignment="Top" Width="75"/> 

</Grid> 

の作品の完全な例です。

+0

私はこれを試しました.. 2番目のボタンをクリックすると、1番目のボタンは通常モードでなければなりません。これはこの修正では起こりません。 – user2366302

+0

@ user2366302:更新された私の答え – Rohit

+0

こんにちはRohit、私はあなたの更新された答えを試みた。赤いボタンをクリックすると1つのボタンだけが表示されます。しかし、最初のボタンをクリックすると、タブキーをクリックしただけです。赤いハイライトは、ボタン1のために消えてしまった。私はあなたが2番目のボタンをクリックするまで、赤の色が持続しなければならないフォーカスを緩めても言っていた。 – user2366302

関連する問題