小编Enr*_*elo的帖子

如何创建可重用的用户控件并将命令绑​​定到它?

我正在尝试在轮播中绑定一个可重复使用的按钮,我想要实现的是添加 6 个按钮,每个按钮将有一个命令,根据按钮名称将导航到正确的页面。

\n\n

我可以通过这样做来做到这一点:

\n\n
<toolkitcontrols:Carousel x:Name="NavigationMenuCarouselPanel"\n                                      HorizontalAlignment="Center"\n                                      VerticalAlignment="Center"\n                                      Orientation="Horizontal"\n                                      ItemsSource="{x:Bind ViewModel.MenuList, Mode=OneWay}"\n                                      ItemMargin="25"\n                                      ItemDepth="160"\n                                      ItemRotationX="180"\n                                      ItemRotationY="25"\n                                      ItemRotationZ="0"\n                                      SelectedIndex="2"\n                                      Grid.Row="1">\n                <toolkitcontrols:Carousel.EasingFunction>\n                    <CubicEase EasingMode="EaseOut"/>\n                </toolkitcontrols:Carousel.EasingFunction>\n                   <Button Command="{x:Bind ViewModel.NavigateToPage1, Mode=OneWay}"\n                           Content="{x:Bind ViewModel.Name, Mode=OneWay}"/>\n            </toolkitcontrols:Carousel>\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我这样做,我将添加 5 个以上的按钮,并且我必须为每个按钮编写属性。

\n\n

因此,我想使用 UserControl 并编写如下内容:

\n\n
<toolkitcontrols:Carousel x:Name="NavigationMenuCarouselPanel"\n                                      HorizontalAlignment="Center"\n                                      VerticalAlignment="Center"\n                                      Orientation="Horizontal"\n                                      ItemsSource="{x:Bind ViewModel.MenuList, Mode=OneWay}"\n                                      ItemMargin="25"\n                                      ItemDepth="160"\n                                      ItemRotationX="180"\n                                      ItemRotationY="25"\n                                      ItemRotationZ="0"\n                                      SelectedIndex="2"\n                                      Grid.Row="1">\n                <toolkitcontrols:Carousel.EasingFunction>\n                    <CubicEase EasingMode="EaseOut"/>\n                </toolkitcontrols:Carousel.EasingFunction>\n                <toolkitcontrols:Carousel.ItemTemplate>\n                    <DataTemplate x:DataType="data:ButtonInfo">\n                        <usercontrolvm:NavigationMenuButtonTemplate NavigateToPageCommand="{Binding NavigateToPageCommand}"/>\n                    </DataTemplate>\n                </toolkitcontrols:Carousel.ItemTemplate>\n            </toolkitcontrols:Carousel>\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我没能做到这一点,我找到了一些教程,但据我所知,所有这些都会让我写出这样的代码:

\n\n
<usercontrolvm:NavigationMenuButtonTemplate NavigateToPageCommand="{Binding NavigateToPageCommand}"/>\n
Run Code Online (Sandbox Code Playgroud)\n\n

大约 6 次,我不知道如何将 …

c# data-binding user-controls uwp uwp-xaml

2
推荐指数
1
解决办法
1916
查看次数

UWP的MVVM模式教程,但它不会绑定命令为什么?

好.我正在按照一个教程来掌握MVVM模式到我的应用程序.

我已经很好地遵循了教程,我得到了命令的一部分,当我尝试将命令应用于按钮时,它似乎根本无法工作,我的按钮永远不会禁用.我已经看过其他MVVM源代码,我的代码似乎没问题,除了我在互联网上发现这个教程是为了WPF,但它也适用于UWP Windows 10应用程序.

所以我会粘贴我的类和Xaml视图.

这是我的模特:

using System.ComponentModel;

namespace MVVMDemo.Model
{
public class Student : INotifyPropertyChanged
{
    private string firstName;
    private string lastName;

    public string FirstName
    {
        get
        {
            return firstName;
        }

        set
        {
            if (firstName != value)
            {
                firstName = value;
                RaisePropertyChanged("FirstName");
                RaisePropertyChanged("FullName");
            }
        }
    }

    public string LastName
    {
        get { return lastName; }

        set
        {
            if (lastName != value)
            {
                lastName = value;
                RaisePropertyChanged("LastName");
                RaisePropertyChanged("FullName");
            }
        }
    }

    public string FullName
    {
        get
        {
            return firstName + …
Run Code Online (Sandbox Code Playgroud)

c# xaml mvvm uwp uwp-xaml

1
推荐指数
1
解决办法
821
查看次数

标签 统计

c# ×2

uwp ×2

uwp-xaml ×2

data-binding ×1

mvvm ×1

user-controls ×1

xaml ×1