0

私は同様の問題を見つけようとしてWebをトロールしてきましたが、問題を解決するものが見つかりません。

グローバル変数を保持する静的クラスがあります。これらのいくつかは、xamlコントロールにバインドできるようにしたいカラー変数であり、ロットを変更するために1つの変数を変更するだけで済みます(グローバル変数の理由)。

クラス名前空間はMyApp.Assets.Resourcesクラス名がGlobal(.cs)です。私のクラスには、、、という名前DEFAULTCOLORの変数がOKCOLORありALARMCOLORます。

私のxaml:

<UserControl
    <!-- ... -->
    xmlns:custom="clr-namespace:InspectionDB.Assets.Resources"
>
    <UserControl.Resources>
        <custom:Global x:Name="global"/> <!-- THIS GIVES AN ERROR SEE BELOW-->

        <common:HierarchicalDataTemplate x:Key="Level1" ItemsSource="{Binding Path=Children}">
            <StackPanel Orientation="Horizontal">
                <Image Source="{Binding Type, Converter={StaticResource localTreeImgConverter}}"/>
                <TextBlock {Binding...} />
                <StackPanel Orientation="Horizontal" Visibility="{Binding Type, Converter={StaticResource localStatusVisibilityConverter}}">
                    <TextBlock Margin="5,0, 0,0" Text="[ " Foreground="{Binding DEFAULTCOLOR, Source={StaticResource global}}" />
                    <TextBlock Text="{Binding Critical}" Foreground="{Binding ALARMCOLOR, Source={StaticResource global}}"/>
                    <TextBlock Text=" | " Foreground="{Binding DEFAULTCOLOR, Source={StaticResource global}}"/>
                    <TextBlock Text="{Binding OK}" Foreground="{Binding OKCOLOR, Source={StaticResource global}}"/>
                    <TextBlock Text=" ]" Foreground="{Binding DEFAULTCOLOR, Source={StaticResource global}}"/>
                </StackPanel>
            </StackPanel>
        </common:HierarchicalDataTemplate>

    </UserControl.Resources>

    <Grid>
        <!-- Where the hierarchical template is used --> 
    </Grid>

</UserControl>

リソースの部分は、バインディングだけでなくエラーもスローします。

Unable to cast object of type 'ApplicationProxy' to type 'Microsoft.Expression.DesignModel.DocumentModel.DocumentNode'.

コードの何が問題になっていますか?どうすればコードを機能させることができますか?

4

1 に答える 1

0

私は自分の問題が何であるかを見つけたので、なぜ私は同様の状況を見つけることができなかったのですか。

理由はpublic class Global : App聞かないでください。ずっと前に正当な理由があったと思いますが、それはある種のファンキーな循環参照が行われていることを意味していました。

問題が解決しました。

于 2012-07-26T16:02:44.367 に答える