:この例ではWPFのListBoxのItemsSource StaticResource /バインド質問
<Window x:Class="WpfApplication76.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:col="clr-namespace:System.Collections;assembly=mscorlib"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<CollectionViewSource x:Key="myCol">
<CollectionViewSource.Source>
<col:ArrayList>
<ListBoxItem>Uno</ListBoxItem>
<ListBoxItem>Dos</ListBoxItem>
<ListBoxItem>Tres</ListBoxItem>
</col:ArrayList>
</CollectionViewSource.Source>
</CollectionViewSource>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{StaticResource myCol}" />
<ListBox ItemsSource="{Binding Source={StaticResource myCol}}" />
</Grid>
</Window>
を、
<ListBox ItemsSource="{StaticResource myCol}" />
は私にそれが "CollectionViewSource" オブジェクトにバインドすることができないことを訴えてエラーを与えます。
しかし、他のリストボックス:
<ListBox ItemsSource="{Binding Source={StaticResource myCol}}" />
は完全に罰金バインドします。
私の質問は、なぜ1つは機能し、もう1つはしないのですか?最後に、両方のItenSourcesが同じ "CollectionViewSource"オブジェクトに設定されていませんか?
ありがとうございます。
ありがとうマイク。私は問題が何かを理解します。私の質問は、なぜ単にCollectionViewSourceオブジェクトからプロパティを選んで自由に取っているだけで、バインディングがそれにぶつかっているのかということに、より重点を置いていましたか?つまり、なぜStaticResource拡張が同じことをやる自由を取っていないのでしょうか? – Rene
推測の種類はありますが、StaticResourceは「バインドできるものを手に入れてください」と言っているところで「私にこのことを教えてください」と言っています。 StaticResourceはよりリテラルです。 Bindingでは、システムがリソースを求めている理由を知っていますが、使用法のコンテキストはありません。クリスアンダーソンの本「Essential WPF」だと思います。バインディングが何をすべきかを正確に把握できないときに起きることの順序を記述します。私は便利ではありませんが、私はそれを試してみるでしょう。この場合、何が起こるかは分かります。 –