1

ListBoxで、各アイテムのIsSelectedプロパティをViewModelにバインドしたかったので、正常にバインドしました。次に、キーボードフォーカスがない場合に、選択したアイテムをより見やすくしたいと思いました。この回答から、その方法がわかりました。どちらの機能も単独で機能しますが、それらを組み合わせると、起動時に次の例外が発生します。

XamlParseException:タイプ「Setter」の「Value」プロパティに「Binding」を設定することはできません。「バインディング」は、DependencyObjectのDependencyPropertyにのみ設定できます。

これが私のXAMLです。

<ListBox x:Name="objectList" ItemsSource="{Binding FilteredList}" SelectionMode="Extended">
    <ListBox.ItemContainerStyle>
        <Style TargetType="{x:Type ListBoxItem}">
            <Style.Resources>
                <!--Make unfocused selected items more visible-->
                <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="LightBlue" Opacity=".5"/>
            </Style.Resources>
            <!-- Support multiselect-->
            <Setter Property="IsSelected" Value="{Binding IsSelected}"/>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>
4

2 に答える 2

1

これを再現することはできません。これは、Silverlightでは予想されるエラーですが、WPFでは予想されません。SLでは、Setterを使用してバインディングを作成することはできません。

于 2011-07-04T22:19:37.567 に答える
0

これを新しいクリーンな空のプロジェクトで再現しようとしましたが、それでもエラーが発生します....NETFrameworkのバージョンが3.5の場合。ただし、.NET Frameworkのバージョンを4に変更すると、エラーは表示されなくなります。おそらく.NET3.5のバグです。

于 2011-11-22T20:09:30.677 に答える