2017-05-30 10 views
0

明確な表示を得るには。 私はUWPでMvvMCrossを使用しています。私のXAMLはこれですのでビュー付きピボットアイテム付きピボットUWP

親モデル

public class TabHost : MvxViewModel 
{ 
    private IList<TabPage> _tabPages; 
    public IList<TabPage> TabPages 
    { 
     get { return _tabPages; } 
     set 
     { 
      _tabPages = value; 
      RaisePropertyChanged(() => TabPages); 
     } 
    } 
} 

のTabPageオブジェクト

public class TabPage 
{ 
    public string Title {get;set;} 
    public Type ViewModelType {get;set;} 
} 

私はピボットのオーバーライドを作成したがTabControlのと呼ばれる:

<controls:TabControl x:Name="TabHostControl" ItemsSource="{Binding TabPages}"> 
    <controls:TabControl.HeaderTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Title}" Foreground="White"/> 
     </DataTemplate> 
    </controls:TabControl.HeaderTemplate> 
    <controls:TabControl.ItemTemplate> 
     <DataTemplate> 
      <Frame x:Name="ViewToLoad" /> 
     </DataTemplate> 
    </controls:TabControl.ItemTemplate> 
</controls:TabControl> 

マイtabpagesタイトルで正しくあります表示されます。しかし、私はビューの内容がPivotItemにロードされることを望みます。

  • レンダリング中に各項目をビューに移動しようとしましたが、 は機能しませんでした。
  • また、(レンダリング中に)コンテンツを設定しようとしました。 ビューを作成してViewModelをバインドできますが、コンテンツを設定すると、 にはxamlコントロールではなくオブジェクトの名前が表示されます。
  • とのUserControlを試みたが、各ビューはありそうすべて

で動作しませんでした独自のコンテキストでPivotItemのビューを設定することが可能ですか? (MvvmCross offcourseを使用してください) または、データアイテムテンプレートのフォーマットでコンテンツをプッシュしますか?

答えて

0

なぜフレームを使用していますか?

ContentControlを使用してページを表示することができますが、簡単な方法はありません。

私は別のフレームワークを使用する前にそれをやったが、それは同様の可能性:

あなたはそれはあなたが表示したいビューページの名前である可能性がプロパティを作成する行動ではContentControlにビヘイビア を使用することができますコード内のビューのインスタンスとビューのビューモデルを作成し、ビューとViewModel(DataContextプロパティを使用)とのバインディングを行い、最後にこのビューをContentControlのコンテンツに挿入します。

実際にフレームを使用したい場合、ソリューションは非常に似ています。

+0

あなたの返信には、明日お試しください。それが動作するかどうかを教えてください! –

関連する問題