2016-05-03 1 views
0

私は以下を試しました。最初のバインディングは正常です(期待どおりにDataItemの行を返します)が、次のエラーはUnsetValueになります。XamDataGridのUnboundFieldにMultiBindingを設定しようとしています

System.Windows.Data警告:40:BindingExpressionパスエラー: 'igDP:Cell' 'オブジェクト'の 'ValueHolderWithDataContext'(HashCode = 46875058) 'にプロパティが見つかりませんでした。 BindingExpression:Path = igDP:Cell.DataPresenter.DataContext; DataItem = 'ValueHolderWithDataContext'(HashCode = 46875058);ターゲット要素は 'ValueHolderWithDataContext'(HashCode = 46875058)です。私は2番目のバインドをバインドするには、xamdatagrid(UnboundFiledがその一部であるもの)DataContextを使用します。

ここで変更する必要があるのは何ですか?

   <igDP:UnboundField Name="Sample" Label="Sample"> 
        <igDP:UnboundField.Binding> 
         <MultiBinding Converter="{StaticResource SampleConverter}"> 
          <Binding/> 
          <Binding Path="igDP:Cell.DataPresenter.DataContext" RelativeSource="{RelativeSource Self}"/> 
         </MultiBinding> 
        </igDP:UnboundField.Binding> 
       </igDP:UnboundField> 

答えて

1

ここで問題が発生した原因は、誤ったバインド定義です。 UnboundFieldは特定のDataTypeにバインドされたクラスであるため、次のバインド部分定義RelativeSource="{RelativeSource Self}"はUnboundFieldがバインドされているDataContext(特定のDataType)を返します。そのため、UnboundFieldオブジェクトのDataContextにigDP:Cellプロパティを見つけようとします。そのようなプロパティは存在しないので、BindingExpressionエラーが発生します。次のいずれかで

<Binding Path="igDP:Cell.DataPresenter.DataContext" RelativeSource="{RelativeSource Self}"/> 

<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType=igDP:Cell}" Path="DataPresenter.DataContext"/> 

よろしく可能な解決策は、あなたの結合部分の定義を交換することです。

関連する問題