0

を含む.iniファイルを取得するアプリケーションを作成する必要があります

  • 最大
  • デフォルト

要素の値。ユーザーはこれらの値を編集して、新しい.iniファイルを保存できます。.iniファイルには指定されたグループ内の異なる要素を含めることができないため、GUIを動的に生成する必要があります。私がWPFについて読んだことから、それは主にデータバインディングと通知プロパティの変更に基づいています。

ビューモデルはさまざまな数の変数に対応する必要があるため、プロパティにバインドすることはできません。すべてのテキストボックスに1つのイベントハンドラーをアタッチして、TextBoxがフォーカスを失ったときまたはEnterキーを押したときに対応する検証ルールを選択することを計画していました。が押されました。その後、検証に合格した場合はそれに応じてモデルを更新し、対応する値のモデルを使用してビューを更新する必要があります。

これが有効なアイデアのように聞こえるかどうか、私が読むべき同様のデザインパターンがあるかどうか、またはWPFから完全に離れる必要があるかどうか疑問に思いました。

4

2 に答える 2

2

バインディングは引き続き使用できます。WPF はアイテムのテンプレート化をサポートしており、MVVM パターンを使用しているため、リスト内のサブアイテムごとに VM を作成するだけで済みます (これを行う必要さえなく、各リスト項目のテンプレートを DTO またはビジネス オブジェクトに)

私は現在、同様のことを行っています。クライアント向けの材料テストのリストがあります。クライアントは、材料ごとにさまざまな数と種類のテストを行いたいと考えていますが、注文ごとにそれらのテストを微調整および変更できるようにしたいと考えています。お客様

実際には 2 つのテスト タイプがありますが、2 つのケース (子 VM 自体を必要としない) の簡単な方を説明するためItemsControlに、項目テンプレートを持つ を作成しました。

<ItemsControl ItemsSource="{SomeBinding}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{PropertyDescription}" />
                <TextBox Text="{PropertyValue}" />
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

この場合、モデルにはプロパティ名/値のリ​​ストが含まれているだけで、それらをスタックパネルに表示します ( を使用して を設定する必要がある場合がありItemPanelますItemsPanelTemplate。WPF は既に型ごとのデータ テンプレートをサポートしています)。ItemsControlDataTemplateSelector

私は現在、Caliburn.Micro を使用しています。これは、実際に多くの子テンプレートを設定します。そのため、バインドされたアイテムを VM として作成すると、次のように簡単に実行できます。

<ItemsControl x:Name="SomeBinding" />

プロパティ内の子項目が VM 自体である限り、残りは CM が処理しSomeBindingます (ただし、それは別の話です:P)。

于 2013-01-22T18:41:15.550 に答える
1

このライブラリをINotifyPropertyChangedを実装するクラスでラップして、プロパティが変更されると WPF が自身を更新できるようにします。そうすれば、効率的に INI ファイルにデータバインドできます。

于 2013-01-22T18:29:45.587 に答える