Как использовать метод в ViewModel?

242
15 февраля 2019, 09:10

Есть приложение, в котором я хочу реализовать MVVM. В файле MainWindow.Xaml необходимо реализовать карусель, в которой находятся изображения. Все, что пока есть:

<Button x:Name="MoveImagesBack" Click="MoveImagesBack_Click" Style="{StaticResource MoveImagesButton}" Content="&lt;"/>
<ListBox ItemsSource="{Binding Path=GamesImages}" x:Name="LoopPhotoCarousel" Margin="0 10" Grid.Column="1"
     ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden"
      BorderThickness="0"
     >
<ListBox.ItemsPanel>
    <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"/>
    </ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemContainerStyle>
    <Style TargetType="ListBoxItem">
        <Setter Property="Width" Value="200"/>
        <Setter Property="Height" Value="120"/>
        <Setter Property="Margin" Value="10 0"/>
    </Style>
</ListBox.ItemContainerStyle>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <Image Source="{Binding}"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
<Button Grid.Column="2" Style="{StaticResource MoveImagesButton}" Content="&gt;"></Button>

В файле MainWindowViewModel.cs код:

ObservableCollection<string> gamesImages = new ObservableCollection<string>();
public ObservableCollection<string> GamesImages
{
    get
    {
        if (gamesImages.Count <= 0)
        {
            gamesImages.Add(@"Images/Games/1.jpg");
            gamesImages.Add(@"Images/Games/2.jpg");
            gamesImages.Add(@"Images/Games/3.jpg");
            gamesImages.Add(@"Images/Games/4.jpg");
            gamesImages.Add(@"Images/Games/5.jpg");
            gamesImages.Add(@"Images/Games/6.jpg");
        }
        return gamesImages;
    }
}

В MainWindow.Xaml.cs:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        this.DataContext = new MainWindowViewModel(this);
    }
}

Так вот: во первых, у меня нигде не получается обратиться к списку LoopPhotoCarousel, для того чтобы попытаться реализовать метод клика на кнопку. Кроме того, я бы хотел, чтобы этот метод находился в файле MainWindowViewModel.cs. Сейчас возникает ошибка CS 1061, если он находится не в файле MainWindow.

1) Что прописать в конструкторе MainWindow, чтобы я мог нормально прописать метод в ViewModel? 2) Почему не видит имя списка? 3) Подсказка по реализации кнопок тоже не помешала бы. Я пока что нашел метод ScrollIntoView, но не уверен, что это то, что нужно.

Карусель такая: [1]: https://pp.userapi.com/c852232/v852232456/2162e/0k-F9DS8bj4.jpg

READ ALSO
Ошибка Warning: mysqli_error() expects exactly 1 parameter, 0 given в запросе

Ошибка Warning: mysqli_error() expects exactly 1 parameter, 0 given в запросе

Помогите исправить ошибку в запросе:

234
Выборка из двух таблиц с чередованием

Выборка из двух таблиц с чередованием

Можно ли с помощью одного запроса выбрать из двух таблиц БД и упорядочить чередованием, те чтобы в итоговой выборке записи чередовались (2 из 1,2 из - 2 и т

229
При создании проекта Laravel выскакивает ошибка Failed to execute unzip -qq. Как результат [RuntimeException] Could not scan for classes inside

При создании проекта Laravel выскакивает ошибка Failed to execute unzip -qq. Как результат [RuntimeException] Could not scan for classes inside

Пытаюсь создать проект с помощью laravel new projectname или composer create-project --prefer-dist laravel/laravel projectnameВ процессе создания проекта выскакивают ошибки такого...

240
Переменные php в мета тегах

Переменные php в мета тегах

Ситуация такая: в php имеются переменная:

252