2015-04-12 3 views
0

У меня есть кнопка, которую я хочу привязать к выбранному элементу списка listItem. Я не могу найти, где моя ошибка. Состояние кнопки всегда включено независимо от testListView.SelectedItems.Count.Невозможно привязать ListView.SelectedItems.Count к Button.IsEnabled

Нужен ли мне какой-нибудь конвертер? Если граф равен нулю, он должен неявно преобразовать это в значение false no?

<ListView x:Name="testListView" SelectionMode="Multiple" BorderThickness="1">    
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <StackPanel> 
         <TextBlock Text="{Binding Name}"/>      
        </StackPanel> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
</ListView> 

<Button x:Name="Button" Content="TestButton" IsEnabled="False" IsEnabled="{Binding ElementName=testListView, Path=SelectedItems.Count}"/> 
+0

Что говорит об ошибке? – Mephy

+0

@Mephy Ошибка в окне вывода к сожалению – user82383

ответ

1

Поскольку Count собственности SelectedItems коллекции является типом int и IsEnabled недвижимости ожидает bool входа, и нет неявного преобразования int в bool не существует в C#, вам нужен конвертер или триггер данных.

Простой IValueConverter должен сделать трюк, просто использовать что-то вроде

return ((int)value) > 0; 

как содержание функции Convert!

0

Обновление с использованием DataTrigger через стиль; что-то вроде этого должно работать:

<Button x:Name="Button" Content="TestButton"> 
    <Button.Style> 
     <Style TargetType="Button"> 
      <Setter Property="IsEnabled" Value="true" /> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding ElementName=testListView, Path=SelectedItems.Count}" Value="0"> 
        <Setter Property="IsEnabled" Value="false" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Button.Style> 
</Button> 
Смежные вопросы