2012-01-24 1 views
0

私はthis answerが好きで、はほぼです。DataTemplatesとContentControlによるバインドプロパティ

DataTemplateが外部ResourceDictionaryにある場合、どうすれば達成できますか?

私はプリズムを使用していますし、私はこのようなファイルを使用することにより、各モジュールによってDataTemplates(のための一般的なCRUDビュー)を提供します。

その後、私はシェルアプリに ResourceDictionariesをマージする this answerを使用
<ResourceDictionary ... some hidden ns here ... > 
    <DataTemplate DataType="{x:Type model:Operation}"> 
     <vw:OperationView /> 
    </DataTemplate> 
    <DataTemplate DataType="{x:Type model:Customer}"> 
     <vw:CustomerView /> 
    </DataTemplate> 
</ResourceDictionary> 

ContentControlが自動的に正しいビューを引っ張る

<ContentControl Content="{Binding MyGenericObject}" /> 

こと:私は、そのコードを持つデフォルトのCRUDの景色を眺めることができます。それは正常に動作しているが、私は各ビュー内のオブジェクトのプロパティをバインドすることを知りたい。

これらのビュー(OperationView.xaml)のサンプルです:

<UserControl x:Class="TryERP2.Cadastro.View.OperationView" 
      ... some hidden NS ... > 
    <StackPanel> 
     <Label Content="Id" /> 
     <TextBox Text="{Binding ????WHAT????}" /> 
     <Label Content="Description" /> 
     <TextBox Text="{Binding ????WHAT????}" /> 
    </StackPanel> 
</UserControl> 

は、どのように私はこれらのプロパティをバインドすることができますか?

+0

は「通常の」結合が機能していませんか?何を試しましたか? – madd0

+0

私はWPFをかなり新しくしており、このアプローチを使用してバインドする方法はわかりません。全体の例を理解できますか?それは明らかだった? –

答えて

2

OperationView背後DataContextはタイプOperationの対象となりますので、あなたは単にあなたが直接結合することができますので、

<!-- DataContext will be model:Operation per your DataTemplate --> 
<UserControl x:Class="TryERP2.Cadastro.View.OperationView" 
      ... some hidden NS ... > 
    <StackPanel> 
     <Label Content="Id" /> 
     <TextBox Text="{Binding Id}" /> 
     <Label Content="Description" /> 
     <TextBox Text="{Binding Description}" /> 
    </StackPanel> 
</UserControl> 
+0

ああ神。出来た。私は、私が物事をもっと難しくしていたと思う。私はいろいろ試しましたが、私は一番単純なものを試しませんでした。ありがとう= D –

+0

@DiegoStiehl LOLだから私はあなたの他の質問にあなたのコメントについてとても混乱していました:)うまくいけばうれしいよ。 – Rachel

+0

これは私がすべてのWPF機能を初めて使ったからです。彼らは別の方法で動作し、私はすべての初心者がそれでいくつかの困難を持っていると思う。 –

1

UserControlDataContextは、あなたのモデルオブジェクトである必要Operation上のどんなプロパティにバインドこのように、その特性のために:唯一のパスが指定されている場合

Text="{Binding SomeProperty}" 

(結合がに対して相対的です、その答えには、のプリミティブな文字列であるTwoWayバインディングをリンクしていたという意味で、{Binding .}のような単純なバインディングではできません。実際のプロパティを対象とするプロパティパスを指定する必要があります)

+0

いいえ、私の敵が戻ってきた!私はあなたが昨日あなたを見たとは思わない:) – Rachel

+0

@Rachel:こんにちは、ネメシス、私の担当者のグラフから見ることができますが、私はあまりアクティブではありません、そして試験の季節が私のために始まっているので、今。 –

+0

ああ、多分私はいくつかの質問に答えることができます:)実際には、私は勤務時間中にここに費やす時間を制限しようとしています...何かが何かを構築している間に未回答のページをプルアップするのは簡単です他の長いプロセスが発生しています!あなたの試験には幸運がありますが、それはあなたが必要とするものではありません。 – Rachel

関連する問題