2016-07-26 11 views
0

マスター/詳細ビューを実装しようとしましたが、選択した項目を2つのDataTemplateを持つUserControlにバインドする方法を理解しようとしました。UWPはListViewの項目をUserControl DataTemplateとしてバインドします

は、私がモデルの2種類があります(私は彼らに教師と生徒を呼ぶことにします)

マイビューモデル:

public class Page_ProfilVM : NotificationBase 
{ 
    public ObservableCollection <AbstractInfosProfilVM> InfosProfil { get; set; } 
    private AbstractInfosProfilVM selectedProfil; 
    public AbstractInfosProfilVM SelectedProfil 
    { 
     get { return selectedProfil; } 
     set 
     { 
      SetProperty(selectedProfil, value,() => selectedProfil = value); 
     } 
    } 
} 

public abstract class AbstractInfosProfilVM : NotificationBase 
{ 
    private string nom; 
    public string Nom 
    { 
     get { return nom; } 
     set { SetProperty(nom, value,() => nom = value); } 
    } 
} 

public class TeacherInfosProfilVM : AbstractInfosProfilVM 
{ 
} 
public class StudentInfosProfilVM : AbstractInfosProfilVM 
{ 
} 

は私が正しくマスタービューを表示

<!-- ListView --> 
<ListView ItemSource="{x:bind ViewModel.Profils}" 
      SelectionMode="Single" 
      SelectedItem="x:bind ViewModel.SelectedProfil, Mode="TwoWay", Converter={.....}}"> 

<ListView.ItemTemplate> 
    <DataTemplate x:DataType="vm:AbstractProfilVM"> 
     <!-- Master --> 
     <widget:CelProfilMaster CelProfilMasterName={x:Bind Name} CelProfilMasterAge={x:Bind Age} ... /> 
    </DataTemplate> 
</ListView.ItemTemplate> 

詳細ビュー(依存プロパティを持つユーザーコントロール)で、選択したアイテムの詳細を正しく表示します。しかし、今私は教師の属性と学生の属性を示すために適切なdataTempalteを選択する必要があります。しかしそれは働かない。

私は教師/生徒の名前を表示しようとしますが、ビューモデルの名前のみを表示します。 教師の属性と学生の属性を "CelluleProfilDetails.CelluleProfilDetailsContent"に正しく表示するにはどうすればよいですか?

答えて

1

データモデルにデータ型に基づいて2つの異なるデータテンプレートを読み込むことができるデータバインディングの概念を実際に探している場合は、間違いなく以下のビデオを参照する必要があります。

私は自分のアプリケーションの1つに同じものを実装しましたが、別のコピー貼り付けソリューションであるため、ここにコードを投稿したくありません。

See This Video

あなたがDataTemplateSelectorの説明に問題がありましたら、私を知ってみましょう。

+0

回答ありがとうございました 多分私は間違っていますが、私は2つのdataTemplateを2つのxと使用しています:異なるデータタイプ、datatempalteselectorは必要ありませんか? 私のObservableCollectionは2つのDataTypeのみを使用し、私のSelectedProfilはTeacherInfosProfilVMまたはStudentInfosProfilVMです。 私の問題は、正しいdataTempalteでNomや他の属性にアクセスできないのですか? (代わりに、dataTempalteの名前が表示されます) – sasukaru

+0

ありがとう、DataTemplateSelectorは私の問題を解決しました=) – sasukaru

関連する問題