33

SelectedItems私はどちらかというと古典的な UI 状況を持っています -とという名前の 2 つの ListBoxes AvailableItems- 既に選択SelectedItemsした項目は にあり、追加可能なSelectedItems項目 (つまり、まだそこにないすべての項目) は にありAvailableItemsます。

また、現在の選択をあるリストから別のリストに移動するボタン<>ボタンがあります(ダブルクリックに加えて、正常に機能します)。

ListBoxで選択されているものに応じて、移動ボタンを有効または無効にするスタイル/トリガーをWPFで設定することは可能ですか? SelectedItemsは左側にあるため、<ボタンは選択AvailableItemsしたものをそのリストに移動します。ただし、項目が選択されていない場合 ( AvailableItems.SelectedIndex == -1)、このボタンを無効にしたい ( IsEnabled == false) - 他のリスト/ボタンについてはその逆です。

これを XAML で直接行うことは可能ですか、それとも分離コードで複雑なロジックを作成して処理する必要がありますか?

4

2 に答える 2

82

少ないコード ソリューション:

<Button Name="button1" IsEnabled="{Binding ElementName=listBox1, Path=SelectedItems.Count}" />

count が 0 の場合は false にマップされ、> 0 は true にマップされます。

于 2012-09-18T11:25:55.410 に答える
52

これがあなたの解決策です。

<Button Name="btn1" >click me    
    <Button.Style>        
        <Style>            
            <Style.Triggers>                
                <DataTrigger 
                     Binding ="{Binding ElementName=list1, Path=SelectedIndex}" 
                     Value="-1">                    
                    <Setter Property="Button.IsEnabled" Value="false"/>                    
                </DataTrigger>                
            </Style.Triggers>            
        </Style>        
    </Button.Style>    
</Button>
于 2008-08-20T14:00:19.337 に答える