0

私は今、wpf(Windowsフォームから来る)での作業を開始し、wpfで遊ぶための小さなツールを作成したいと思います。バインディングとテンプレートがあり、それらが何をするのかを理解し、Window.DataContextを埋める必要があり、これにバインドできることを理解していますが、私の例では、すべてをまとめることはできません。誰かが私を助けてくれるかもしれません。 、これをよりよく理解するために。

モデルは

    クラスViewModel
    {{
        public List'Bank ListOfBanks {get; セットする; }
    }

    クラス銀行
    {{
        public List'Account ListOfAccounts {get; セットする; }
    }

    クラスアカウント
    {{
        public String Description {get; セットする; }
        public Decimal Money {get; セットする; }
    }

私がやりたいのは、(いくつかの素敵な青い)長方形の動的リスト(Count = ListOfBanksプロパティの銀行の数)を作成することです。この長方形には、2つの列(DescriptionプロパティとMoneyプロパティ)を持つグリッドが必要です。銀行モデルのListOfAccountsプロパティにAccountsがあるような行と同じです。

私が知っているのは

    public MainWindow()
    {{
        InitializeComponent();

        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 に答える