0

次のように定義した依存関係オブジェクトに従って画像のスタイルを設定しようとしています。

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に設定します。

しかし、何らかの理由で、このオブジェクトに応じて画像が変化していません...そして何が悪いのか考えてみてください。

4

1 に答える 1

0

connected16.pngオブジェクトが接続されていないときに表示され、接続されているdisconnected16.pngときに切り替えるという事実にもかかわらず、ObjectDataProvider によって管理されるオブジェクトを設定する必要があります。IsConnected

ObjectDataProvider p = (ObjectDataProvider)Resources["GetIsConnected"];
((ConnectionRepository)p.Data).IsConnected = true;
于 2012-02-07T10:06:07.970 に答える