1

私の XAML セットアップは少し複雑なコードです。

<UserControl.Resources>
    <local:SuperCoolObject x:Key="firstObject"/>
    <local:TotallyHotObject x:Key="secondObject"/>
</UserControl.Resources>
<Grid>
    <ItemsControl ItemsSource="{Binding Path=MyItems, Source={StaticResource firstObject}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <DataTemplate.Resources>
                    <lol:MyConverter x:Key="myConverter"  Equals="{Binding Path=SelectedItem, Source={StaticResource secondObject}}" />
                    <Style x:Key="On" TargetType="local:ThemedImage">
                        <Setter Property="Visibility" Value="Hidden"/>
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding Converter={StaticResource myConverter}}" Value="True">
                                 <Setter Property="Visibility" Value="Visible" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </DataTemplate.Resources>
            </DataTemplate>
        </ItemsControl.ItemTemplate>    
    </ItemsControl>                 
</Grid>

(実際の DataTemplate は省略しました)

ItemsControlItemsSourceにバインドされfirstObjectmyConverterにバインドされることに注目してくださいsecondObject。私がする必要があるのは、バインディング ( ) プロパティが変更さItemsSourceれたときにバインディングを更新することです。myConvertersecondObject.SelectedItem

適切なプロパティはすべてバインド プロパティとして設定されていますがItemsSource、XAML で何らかの方法または強制的に更新する必要があります。

4

0 に答える 0