Не меняется значение контента с помощью триггера

142
13 ноября 2019, 07:00

Имеется код пагинатора, который должен при контенте с значением 0 сделать кнопку неактивной, а так же установить контент кнопки как ...:

<Grid>
    <ItemsControl ItemsSource="{Binding Paginator.Pages}" Padding="3.5">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel HorizontalAlignment="Center"
                            Orientation="Horizontal"
                            ClipToBounds="False" IsItemsHost="True" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.Style>
            <Style TargetType="ItemsControl">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type ItemsControl}">
                            <Border BorderBrush="{TemplateBinding BorderBrush}"
                                    BorderThickness="{TemplateBinding BorderThickness}"
                                    Background="{TemplateBinding Background}"
                                    Padding="{TemplateBinding Padding}"
                                    SnapsToDevicePixels="True">
                                <ScrollViewer CanContentScroll="True" VerticalScrollBarVisibility="Auto">
                                    <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                                </ScrollViewer>
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </ItemsControl.Style>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button Command="{Binding ElementName=UserControl, Path=DataContext.LoadPage}"
                        CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=Content}"
                        Content="{TemplateBinding Content}"
                        MinWidth="15" MinHeight="10" Margin="2.5"
                        Padding="4,2.5,4,2.5" VerticalAlignment="Center">
                    <Button.Style>
                        <Style TargetType="{x:Type Button}">
                            <Style.Triggers>
                                <DataTrigger
                                    Binding="{Binding RelativeSource={RelativeSource Self}, Path=Content}"
                                    Value="0">
                                    <Setter Property="IsEnabled" Value="False" />
                                    <Setter Property="Content" Value="…" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </Button.Style>
                </Button>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Grid>
public class PaginatorViewModel : ViewModelBase
{
    public static readonly PropertyData PaginatorProperty = RegisterProperty(nameof(Paginator), typeof(IPaginatorModel));
    public static readonly PropertyData LoadPageProperty = RegisterProperty(nameof(LoadPage), typeof(TaskCommand<int>));
    public override string Title => "Paginator";
    public PaginatorViewModel(IPaginatorModel paginatorModel, IMessageService messageService, TaskCommand<int> commandLoadPage)
    {
        Paginator = paginatorModel;
        LoadPage = commandLoadPage;
    }
    public TaskCommand<int> LoadPage
    {
        get => GetValue<TaskCommand<int>>(LoadPageProperty);
        set => SetValue(LoadPageProperty, value);
    }

    public IPaginatorModel Paginator
    {
        get => GetValue<IPaginatorModel>(PaginatorProperty);
        private set => SetValue(PaginatorProperty, value);
    }
    protected override async Task InitializeAsync()
    {
        await base.InitializeAsync();
    }
    protected override async Task CloseAsync()
    {
        await base.CloseAsync();
    }
}

Но смены контента не происходит.

Почему так происходит, и как добиться нормального результата?

READ ALSO
Кнопка с выпадающим списком

Кнопка с выпадающим списком

Нужно реализовать кнопку следующего вида

144
Кастомный шрифт

Кастомный шрифт

Использую в проекте свой кастомный шрифт, в свойствах текст бокса указал его, но я так понимаю он будет только у меня работать

165
Как &ldquo;добавить&rdquo; SFML в проект?

Как “добавить” SFML в проект?

Я добавил необходимые ссылки на DLL в SFML(первая картинка), и пытаюсь скомпилировать программу, но вылезает ошибка (вторая картинка)

151
Обновление окна WPF C#

Обновление окна WPF C#

Только начал изучать wpf, так что не кидайте тапками:) У меня есть функция, которая создает новое окно с прогрессбаром, получает файлы по sftp (SSHNET)...

180