Источник изображения не изменяется в соответствии с зависимостью объекта - PullRequest
0 голосов
/ 07 февраля 2012

Я пытаюсь стилизовать свое изображение в соответствии с объектом зависимости, который я определил следующим образом:

в MainWindow.xaml:

<ObjectDataProvider x:Key="GetIsConnected"
                ObjectType="{x:Type ConnectionRepository:ConnectionRepository}" />

    <Image Name="ConnectStatusBarImage" Width="16" Height="16">
        <Image.Style>
            <Style>
                <Setter Property="Image.Source" Value="/Images/connected16.png" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Source={StaticResource GetIsConnected}, Path=IsConnected}" Value="true">
                        <Setter Property="Image.Source" Value="/Images/disconnected16.png" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Image.Style>
    </Image>

код репозитория выглядит так:

public class ConnectionRepository : DependencyObject  
    {
    public bool IsConnected
    {
        get { return (bool)GetValue(IsConnectedProperty); }
        set { SetValue(IsConnectedProperty, value); }
    }
}


public static readonly DependencyProperty IsConnectedProperty =
    DependencyProperty.Register("IsConnected", 
    typeof(bool), typeof(ConnectionRepository));

я установил IsConnect в true, если соединение установилось успешно.

но по какой-то причине изображение не меняется в зависимости от этого объекта ... и идея, что не так?

1 Ответ

0 голосов
/ 07 февраля 2012

Несмотря на то, что вы показываете connected16.png, когда объект не подключен, и переключаетесь на disconnected16.png, когда подключен , вам придется установить IsConnected на объекте, управляемом ObjectDataProvider:

ObjectDataProvider p = (ObjectDataProvider)Resources["GetIsConnected"];
((ConnectionRepository)p.Data).IsConnected = true;
...