首页 文章

WPF初学者:绑定和模板

提问于
浏览
0

我现在开始使用wpf(来自Windows Forms),现在我想创建一个用于玩wpf的小工具 . 我知道有绑定和模板,并了解他们做了什么,并知道我必须填写Window.DataContext并且可以绑定到这个但是对于我的例子我不能把它全部放在一起,也许有人可以帮助我,更好地理解这一点 .

模特是

class ViewModel
    {
        public List'Bank ListOfBanks { get; set; }
    }

    class Bank
    {
        public List'Account ListOfAccounts { get; set; }
    }

    class Account
    {
        public String Description { get; set; }
        public Decimal Money { get; set; }
    }

我想要做的是,有一个(一些漂亮的蓝色)矩形的动态列表(Count = ListOfBanks属性中的Bank数),并且在这个Rectangle中应该是一个有两列(Description和Money属性)的网格,它应该具有as就像银行模型中的ListOfAccounts属性中的帐户一样 .

我所知道的是

public MainWindow()
    {
        InitializeComponent();

        this.DataContext = new ViewModel();
    }

我知道这并不多 . 我知道如何将网格列绑定到帐户属性,这就是全部 .

如果有人可以帮助我,那将是很棒的 .

亲切的问候

1 回答

  • 2

    一种简单的方法是使用嵌套的 ItemsCollection

    <ItemsControl ItemsSource="{Binding ListOfBanks}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding ListOfAccounts.Count,StringFormat='Number of Accounts: {0}'}" />
                <ItemsControl ItemsSource="{Binding ListOfAccounts}">
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition />
                                <ColumnDefinition />
                            </Grid.ColumnDefinitions>
                            <TextBlock Text="{Binding Description}" />
                            <TextBlock Grid.Column="1" Text="{Binding Money,StringFormat='{}{0:C}'}" />
                        </Grid>
                    </DataTemplate>
                </ItemsControl>
            </StackPanel>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
    

    ItemsControl是一个基本的重复控件 - 如果你想要花里胡哨使用 ListBox (项目选择)或 DataGrid (排序,分组,自动列等) .

相关问题