2010-04-15 3 views
0
<ItemsControl Margin="0,16" ItemsSource="{Binding}"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <StackPanel /> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 

     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal" Margin="8,0,8,18"> 
        <Image Height="6" Source="MultiSelectorTick.png" Stretch="Fill" Width="4"/> 
        <TextBlock Foreground="{Binding Path=IsSelected, Converter={StaticResource ResourceKey=selectionConverter}}" 
         Text="{Binding DisplayName, FallbackValue=Not Specified}" Margin="4,0,0,0" FontSize="13.333" > 
        <i:Interaction.Triggers> 
         <i:EventTrigger EventName="MouseLeftButtonDown"> 
          <MC_Windows:ExecuteCommandAction TargetCommand="ToggleExecuted"/> 
         </i:EventTrigger> 
        </i:Interaction.Triggers> 
        </TextBlock> 
       </StackPanel> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 

источник данных о качестве ObservableCollection, где фильтр определен здесь:WPF ItemsControl не является обязательным, когда я изменить свойства элемента

private ICommand toggleExecuted; 
    public ICommand ToggleExecuted 
    { 
     get 
     { 
      if (this.toggleExecuted == null) 
       this.toggleExecuted = new RelayCommand(
        e => { this.IsSelected = !this.IsSelected; }); 
      return toggleExecuted; 
     } 
    } 

    public bool IsSelected 
    { 
     get { return this.isSelected; } 
     set 
     { 
      this.isSelected = value; 
      this.OnPropertyChanged("IsSelected"); 
     } 
    } 

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

+0

Является ли выборКонвертер работать? Можете ли вы установить контрольную точку в этом конвертере? –

+0

Этот конвертер работает, потому что дисплей обновляется разными цветами на основе того, отмечен ли элемент как IsSelected, когда коллекция изначально заполнена. –

+0

Конвертер никогда не вызывается, когда вы нажимаете на элемент. Который говорит, что привязка, похоже, работает только тогда, когда коллекция впервые заполнена. –

ответ

0

Я переместил исполнение в базовый элемент управления, и он сработал.