WPF ItemsControl не привязывается при изменении свойства элемента - PullRequest
0 голосов
/ 15 апреля 2010
<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, где фильтр определен здесь:

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. Тем не менее, интерфейс не обновляется.

1 Ответ

0 голосов
/ 30 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...