1

まず、WPF と MVVM は初めてです。私はこのようなインターフェースを持っています

Interface IItemType
{
  bool save()
}

そして、このインターフェイスから継承された3つの具象クラスがあります

Public Class Type1:IItemType
{
   public bool save()
   {
     //save something with method 1
   }
}

Public Class Type2:IItemType
{
   public bool save()
   {
     //save something with method 2
   }
}

View に 3 つの RadioButton (将来的には 4,5 またはそれ以上に拡張可能) があり、これらの RadioButton のいずれかを選択して保存方法 (クラスType1または) を選択します。Type2問題は、これらのラジオをViewModelにバインドして、OCPなどのパターン設計に違反しないようにするにはどうすればよいですか(将来、タイプとラジオを追加したいので)?

MVVM のベスト プラクティスの設計を満たしていますか?

** 編集 **

次のプロパティがあると想像してください

Public IItemType CurrentType { get; set; }

Type1最初のラジオが選択されたときに Class を CurrentType プロパティに入れ、2 番目の Radio が選択されたときにClass を CurrentType プロパティに入れたい、というType2ように。

4

2 に答える 2

2

RelayCommand パターンを使用しない理由

完全なパターンの詳細について読む: Model-View-ViewModel デザイン パターンを使用した WPF アプリ public class RelayCommand : ICommand { //code realted Icommand インターフェイス }

RelayCommand _saveCommand;
public ICommand SaveCommand
{
    get
    {
        if (_saveCommand == null)
        {
            _saveCommand = new RelayCommand(param => this.Save(),
                param => this.CanSave );
        }
        return _saveCommand;
    }
}

のようなバインドコマンド

<Hyperlink Command="{Binding Path=SaveCommand}">
于 2012-11-02T05:55:20.593 に答える
0

リストから 1 つの項目を選択する場合は、ComboBox が適しています。WPF の ComboBox を使用したデータバインディングに関する情報を次に示します。 WPF ComboBox をカスタム リストにバインドする

于 2012-11-02T05:52:05.793 に答える