Introduction

掲題の通り。

正確には、「Bindng ソースは public プロパティである必要がある」なので、Converter とか関係ない。

知らなかった。

会社で作業中に遭遇した。
てっきり、同じアセンブリ内なら Binding できると思っていたけど、そういう話ですらなかった。

もう、完全に思い込み…かなり時間を溶かした…

Why?

バインディング ソースの概要 (WPF .NET)#その他の特性

バインディング ソース プロパティとして使用するプロパティは、クラスのパブリック プロパティである必要があります。

と、書いてある。

internal のクラスは DataContext とかに Binding できるのに…。

恐らく、というか確定だとおもうが、外部アセンブリで定義されたクラスオブジェクトのプロパティに Binding するなら public でないとダメなので、それを踏まえた仕様になったのだと思う。
自アセンブリくらい許して欲しいが…

Aside

ちなみに、InternalPropertyBindingConverter class というのが、 Microsoft.PowerShell.GPowerShell.dllMicrosoft.Windows.PowerShell.Gui.Internal 名前空間にいる。