2017-04-27 4 views
0

私は取得しているバインディングエラーを取り除く方法を理解できないようです。DataGridTemplateColumnとBinding Error? MVVM

しかし、私が結合することを、以下の両方のケースで正しく動作していることを規定しなければならないが、私は常にXAMLで警告エラーを取得するように見えます。

以下のコードは、XAMLでエラーを作成し、私は結合作品それが必要として、上記のように言っていません。 dDateにバインドする必要があります。

<DataGridTextColumn Width="50" Header="Day" 
     SortMemberPath="dDate" IsReadOnly="True" 
     Binding="{Binding Path=dDate, 
        StringFormat={}{0:ddd}}" /> 

しかし、私はDataGridTemplateColumnを使用してdDateに結合するか、私は、XAMLでエラーが出るが、先に述べたように、すべてはそれが必要としてバインドします。

<DataGridTemplateColumn Width="50" Header="Day" 
      SortMemberPath="dDate" IsReadOnly="True"> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock 
       Text="{Binding Path=dDate, 
         StringFormat={}{0:ddd}}" /> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

そして、私はこのエラーを取得し、

enter image description here

私は、私も本当にこのエラーが結合として発生した理由を仕事にしようとする必要がある場合は、「作業が、私はできているかわかりませんちょうどそれを行かせるように見える。

これが起こる理由は何ですか?

編集:私は、これがまたDataGridTemplateColumnを使用する他の列に起こることを言及する必要があります。

+0

お奨めは笑う、5秒とダウン投票のために掲示、ダウン有権者も読まなかった設計時間を使うことができ、相対ソースを使用することができます質問???彼/彼女がした場合、フラッシュよりも速いリーダー... – KyloRen

+0

実行時にバインディングが心配することはありません。 XAMLデザイナーは、すべてのシナリオを処理するのに十分スマートではありません。これはリフレクターに関連しているようですね? – mm8

+0

@ mm8、うん、すべてが正常に動作します。しかし、私はそれを行かせることはできません(エラーです)。私は不動産の下に小さな波線を見て嫌い。リフレクターとは何ですか? – KyloRen

答えて

1

バインディングが実行時に機能する場合は、何も心配はありません。

は、それはおそらく何らかの理由でこれらの波線を追加ReSharperです。おそらく、彼らと一緒に暮らすかReSharperをアンインストールすることを学ぶ必要があります:)

+0

resharperには無効にする方法があります。私は、ReSharperのを使用していないが、私は今朝http://stackoverflow.com/questions/43654097/animating-solidcolorbrush-in-backgroundこの質問を見て、答えはそれでこれを持っていた。<! - ReSharperのは、一度無効にしXaml.BindingWithContextNotResolved - > BindingWithContextNotResolvedの部分を変更する必要があるかもしれません。 –

2

あなたが使用するバインディングタイプを定義するデータ型を使用することができます。

<DataGridTemplateColumn.CellTemplate> 
    <DataTemplate DataType="local:MyType"> 
     <TextBlock Text="{Binding MyProperty}"></TextBlock> 
    </DataTemplate> 
</DataGridTemplateColumn.CellTemplate> 

それとも

<TextBlock Text="{Binding DataContext.MyProperty, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGridRow}}"></TextBlock> 

それとも、

<TextBlock Text="{Binding MyProperty}" d:DataContext="{d:DesignInstance local:MyType}"></TextBlock> 
+0

答えをありがとう。しかし、残念なことにそれらの仕事のどれも。ところで、エラーメッセージを見ると、私はすでにXAMLファイルにd:DataContextを定義しています。 – KyloRen

関連する問題