Привязать изображение в шаблонном ListBox к свойству ViewModel - PullRequest
0 голосов
/ 12 января 2012

TL; DR - произошла ошибка привязки. Усталые глаза скучают по вещам.

Я реализовал множественный выбор списка CheckBox, используя ListBox в качестве контейнера. Теперь рядом с каждым флажком в списке я хочу отобразить изображение, видимость которого связана со свойством ViewModel, но у меня возникают трудности с этим.

Мои стили:

<Grid.Resources>
            <Style x:Key="ListBoxCheckStyle" TargetType="ListBox">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ListBox">
                            <ItemsPresenter HorizontalAlignment="Left" VerticalAlignment="Top"/>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
            <ItemsPanelTemplate x:Key="ListBoxCheckStyleItemsPanelTemplate">
                <StackPanel />
            </ItemsPanelTemplate>
            <Style x:Key="ListBoxItemCheckStyle" TargetType="ListBoxItem">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ListBoxItem">
                            <StackPanel Orientation="Horizontal">                                
                                <ChimeControls:CheckBox 
                                        Content="{TemplateBinding Content}" 
                                        ContentTemplate="{TemplateBinding ContentTemplate}"
                                        Margin="0,0,10,0"
                                        IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>
                                <Image 
                                    Width="16" 
                                    Height="16" 
                                    VerticalAlignment="Center" 
                                    Source="{StaticResource OccurredStatusTypeImageSource}" 
                                    Visibility="{Binding HasConsentCondition, Converter={StaticResource BoolToVisibilityConverter}, FallbackValue=Collapsed}" 
                                    HorizontalAlignment="Right" 
                                    Margin="10,0,10,0" />
                            </StackPanel>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Grid.Resources>

Мой список определен как:

<ListBox 
                                x:Name="objectivesListBox" 
                                HorizontalAlignment="Left" 
                                VerticalAlignment="Top"
                                Style="{StaticResource ListBoxCheckStyle}" 
                                ItemsPanel="{StaticResource ListBoxCheckStyleItemsPanelTemplate}" 
                                ItemContainerStyle="{StaticResource ListBoxItemCheckStyle}"
                                ItemsSource="{Binding ObjectivesList}"
                                DisplayMemberPath="mgt_plan_obj_name"
                                AttachedProperties:ListBoxSelectedItems.Items="{Binding SelectedObjectives, Mode=TwoWay}"
                                SelectionMode="Multiple"/>

Мое изображение никогда не отображается, а получатель свойства, с которым связан видимость, никогда не вызывается. Чего мне не хватает?

1 Ответ

1 голос
/ 13 января 2012

В соответствии с предложением nemesv я снова проверил окно вывода, и произошла ошибка привязки.

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