4

表面要素のコンポーネントを更新しようとすると、いくつか問題が発生します。私はこのトピックに慣れていないので、問題へのアプローチが間違っているかどうかはわかりません。

私のポイントは次の図で表されます

ここに画像の説明を入力

メニューで選択されたオプションに従って、さまざまなユーザー コントロールを StackPanel の唯一の子として読み込みますが、読み込まれたユーザー コントロールから Listview を更新する際に問題が発生します。例: 新しいアイテムを保存するときに、リストを再充電する必要がありますListView の項目

4

2 に答える 2

1

ここでは MVVM が良いパターンです。コントロール間でデータを渡すのに問題がある場合は、統一されたデータ レイヤーの上にそれらを導入してみませんか? このことを考慮:

メニューの 3 つのラジオ ボタンで、それぞれのプロパティがそれぞれの のIsCheckedプロパティにバインドされてVisibilityいますUserControl

StackPanel3つすべてを保持UserControls

ListViewViewModel にバインドList<Item>

それぞれが にUserControlsバインドされていますListView.SelectedItem。そのうちの 1 つはTextBlock読み取り専用に使用され、もう 1 つTextBoxは編集に使用されます。3 つ目は、新しいアイテムを に作成しますList<Item>。for eachを作成ItemTemplateするか、UserControl(非常によく似ているため) 作成して を使用する必要がありますDataTemplateSelector

MVVM に慣れていない場合は、ここから始めることをお勧めします。MVVM Lightなどの既存のフレームワークの 1 つを使用することもできます。

于 2012-04-27T06:17:04.533 に答える
0

あなたはあなたの子供にイベントを作成することができます

public delegate void HandleNAMEOFYOURHANDLEEVENT();

あなたの子供のクラスで

public event HandleNAMEOFYOURHANDLEEVENT yourInstance;

あなたの子供のクラスでそれを使用するには

if (!ReferenceEquals(yourInstance, null))
                        {
                            yourInstance();
                        }

そしてあなたは他のイベントのようにあなたの親にそれを宣言します。

于 2012-04-27T06:09:03.023 に答える