0

我现在开始使用 wpf(来自 Windows 窗体),现在我想创建一个小工具来玩 wpf。我知道有绑定和模板,并且了解它们的作用,并且知道我必须填充 Window.DataContext 并且可以绑定到此,但是对于我的示例,我并没有把它们全部放在一起,也许有人可以帮助我,以便更好地理解这一点。

型号是

    类视图模型
    {
        public List'Bank ListOfBanks { get; 放; }
    }

    类银行
    {
        public List'Account ListOfAccounts { get; 放; }
    }

    类账户
    {
        公共字符串描述{get; 放; }
        公共十进制钱{得到; 放; }
    }

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

我所知道的是

    公共主窗口()
    {
        初始化组件();

        this.DataContext = new ViewModel();
    }

我知道这并不多。而且我知道如何将网格列与帐户属性绑定,仅此而已。

如果有人可以帮助我,那就太好了。

亲切的问候

4

1 回答 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(排序、分组、自动列等)。

于 2012-11-28T08:22:44.210 回答