2009-07-16 12 views
4

ListViewコントロールをDataTableにバインドしようとしていますが、WPFバインディングシステムが指定したバインディングパスについて不平を言っているようです。現在のアイテム(WPF)へのバインド

<GridViewColumn Header="ColumnTitle" 
DisplayMemberBinding="{Binding Path=/, 
         Converter={StaticResource myConverter}}"/> 

を私の知る限り理解(およびMSNは、私をサポートしているようだ)データ収集の現在の項目に結合するべきであるPath=/を指定して、として次のような例として

GridViewColumnが定義されています。

私は(トレースウィンドウで)受信エラーがある:

System.Windows.Data Error: 39 : BindingExpression path error: '' property not found on 'current item of collection' ''OrdersRow' (HashCode=680171)'. BindingExpression:Path=/; DataItem='OrdersRow' (HashCode=680171); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')

これは私/も有効なパスではありませんという印象を与えている、とWPFは、スラッシュの後に何かを期待しています。もしそうなら、私は現在のアイテムにどのようにバインドしますか?最初にこのエラーが発生するのはなぜですか?

答えて

3

私は混乱がGridViewColumnのためのDataContextがないトップコレクションですが、すでにその列にバインドされている項目であるということだと思うので、あなたは、パスを指定する必要はありません。

このようなパスを使用する時間は、コントロールのDataContextがListであり、選択したアイテムにバインドする場合です。可能な例があります。

<Combobox DataContext={Binding ColourList} 
      DataSource={Binding} <!--Bind to the datacontext --> 
      ForeColor={Binding/} <!--Bind to the currently selected item 
            in the datacontext --> 
      /> 
+0

@マーティン:まあ、それは私の混乱が起こったところです。私は自動的にこれがコレクション全体を指していると思ったので、私は道を離れることを試みなかった。完全な説明をありがとう。 – Noldorin

7

Pathパラメータを省略しようとしましたか?

<GridViewColumn Header="ColumnTitle" 
    DisplayMemberBinding="{Binding Converter={StaticResource myConverter}}"/> 
+0

@sixlettervariables:お返事ありがとうございます。実際には 'Path'パラメータを抜けてしまったのは間違いありません。申し訳ありませんが、私はMartinに余分な詳細を教えてもらう必要がありました。 – Noldorin

関連する問題