Saya mencoba untuk mendapatkan satu item dari database saya, dan ketika mengklik tombol berikutnya atau sebelumnya, saya ingin mendapatkan item berikutnya dari database saya dengan meningkatkan ID-nya. Saya berada di titik memiliki item pertama saya di kartu saya, tetapi ketika saya mengklik sebelumnya atau berikutnya, tidak ada yang terjadi. Saya punya di xaml:

   <smtx:XamlDisplay Key="cards_1"  Margin="4 4 0 0">
            <materialDesign:Flipper Style="{StaticResource MaterialDesignCardFlipper}">
                <materialDesign:Flipper.FrontContent>
                    <Grid Height="350" Width="200">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="250" />
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
                        <materialDesign:ColorZone Mode="PrimaryMid" VerticalAlignment="Stretch">
                            <materialDesign:PackIcon Kind="AccountCircle" Height="128" Width="128"
                                                             VerticalAlignment="Center" HorizontalAlignment="Center" />
                        </materialDesign:ColorZone>
                        <StackPanel Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center">
                            <TextBlock Text="{Binding CurrentGebruiker.Naam}"></TextBlock>
                            <Button Style="{StaticResource MaterialDesignFlatButton}" Foreground="DarkGoldenrod"
                                            Command="{x:Static materialDesign:Flipper.FlipCommand}"
                                            Margin="0 4 0 0"
                                            >SHOW DETAILS</Button>
                        </StackPanel>
                    </Grid>
                </materialDesign:Flipper.FrontContent>

Dan model tampilan saya:

public ZoekMatchViewModel()
        {
            LeesGebruiker(1);
            KoppelenCommands();
        }

        private Gebruiker currentGebruiker;
        public Gebruiker CurrentGebruiker
        {
            get
            {
                return currentGebruiker;
            }

            set
            {
                currentGebruiker = value;
                NotifyPropertyChanged();
            }
        }

        private void KoppelenCommands()
        {
            NextCommand = new BaseCommand(VolgendeGebruiker);
            PrevCommand = new BaseCommand(VorigeGebruiker);
        }

        public ICommand NextCommand { get; set; }
        public ICommand PrevCommand { get; set; }

        private void LeesGebruiker(int id)
        {
            //instantiëren dataservice
            ZoekMatchDataService zoekMatchDS =
                new ZoekMatchDataService();

            currentGebruiker = zoekMatchDS.GetGebruiker(id);
        }


        public void VolgendeGebruiker()
        {
            if (CurrentGebruiker != null)
            {
                int id = (currentGebruiker.ID) + 1;
                LeesGebruiker(id);
            }
        }


        public void VorigeGebruiker()
        {
            if (CurrentGebruiker != null)
            {
                int id = (currentGebruiker.ID) - 1;
                LeesGebruiker(id);
            }
        }

Tombol saya:

<Button Command="{Binding PrevCommand}" Background="Transparent" BorderThickness="0" Height="50">

Dan

<Button Command="{Binding NextCommand}" Background="Transparent" BorderThickness="0" Height="50">

Jadi masalahnya adalah xaml saya tidak memperbarui ke pengguna baru ketika saya mengklik tombol berikutnya atau sebelumnya. Jika Anda membutuhkan informasi lebih lanjut, saya akan dengan senang hati memberikannya!

-2
Amber Akkermans 11 April 2020, 18:10

1 menjawab

Jawaban Terbaik

Saya pikir cara yang "benar" untuk melakukan ini adalah dengan Selector. Selector adalah kelas dasar yang digunakan di WPF untuk kontrol yang memungkinkan pengguna memilih satu atau lebih item dari daftar. Misalnya: ComboBox dan ListBox keduanya Selector. Jika Anda belum pernah membuat kontrol khusus sebelumnya, ini mungkin agak rumit.

Ada beberapa jawaban yang lebih sederhana. Anda bisa membuat kelas yang menampung semua data yang ingin Anda tampilkan untuk satu opsi, dan meminta Window Anda menentukan properti jenis itu. Kemudian Anda dapat mengikat semua bagian variabel antarmuka Anda ke properti itu dan hanya mengubah nilai properti secara manual ketika pengguna mengklik tombol kiri atau kanan. Tentu saja Anda hanya dapat menggunakan ini di satu tempat, sedangkan jika Anda membuat kontrol khusus, Anda dapat menggunakannya kembali di mana saja, berapa kali.

0
Keith Stein 11 April 2020, 21:35