0

トレイに移動する必要がある WPF アプリケーションがあります。現在、UI で直接開始され、2 つのタブがあります。2 番目のタブには、関連付けられたデバイスの設定を保持する折りたたみ可能なコンテナーがいくつかあります。デバイスは動的に追加または削除できます。

トレイ アプリを追加し、アプリから設定を呼び出すコードを追加しました。折りたたみ可能なコンテナが空であることを除いて、すべてが正常に機能します。コードをトレースして、オブジェクトが含まれている必要があることを確認しました。

デフォルトのアプリケーションをUIに設定すると機能するのに、トレイからUIを起動すると機能しないのは奇妙です。以下に xaml のセクションを含めました。

<c:CollapsibleSection Header="Senders">
        <c:CollapsibleSection.CollapsedContent>
             <c:RepeatControl Margin="30,0,0,0" ItemsSource="{Binding SendersList}"  
                              ItemType="{x:Type m:Sender}"  List="{Binding SendersList}"  
                              ItemTemplate="{StaticResource SenderSummary}"/>
        </c:CollapsibleSection.CollapsedContent>
        <Border BorderThickness="1" BorderBrush="Chocolate" Margin="30,0,0,0">
            <c:RepeatControl  ItemsSource="{Binding SendersList}"  ItemType="{x:Type m:Sender}" List="{Binding SendersList}"  ItemTemplate="{StaticResource SenderTemplate}"/> 
        </Border>
    </c:CollapsibleSection>

私は WPF にあまり詳しくないので、VS 2008 で xaml をデバッグするための良い方法があるかどうか疑問に思っていました。2010 年と 2012 年にツールを見つけました。 2007年にはあまり見つかりませんでした。

また、UI がスタートアップ プロジェクトとして開始されたときに適切に動作する原因を誰かが知っていることを願っていますが、別のプロジェクトから呼び出されたときはそうではありません。このプロジェクトは当初、UI がスタートアップ プロジェクトとして開発されました。トレイは別のプロジェクトです。UI も、メイン プロジェクト フォルダーと UI フォルダーの両方に存在する複数のクラスで構成されます。ただし、すべての xaml がアクセスされているようです (CollapsibleSection を持つクラスの他の部分が作成されます)。

スローされる例外はありません。

追加情報

また、バインドされていないテキストが送信者に表示されるかどうかを確認するために test-textblock を追加しようとしましたが、まだ何も表示されませんでした。追加したコードは以下です。

    <TextBlock Name="testTextBlock">
    <ContentControl Content="This is just a test...  " Foreground="Red">/ContentControl>
</TextBlock>

ご協力ありがとうございます。

4

1 に答える 1

0

私はついにこれを理解しました。UI をインスタンス化する代わりに、WPF アプリケーション全体を呼び出して実行する必要があります。これにより、App.xaml がディクショナリをロードし、他の WPF フォームがディクショナリにアクセスできるようになります。これは、次のコードで行われます。

    private void settingsEvent_Click(object sender, EventArgs e)
    {
        app.InitializeComponent();
        gui = new Sender_Receiver.mainWindow();
    }
    private static App app = new App();

これは実験を通じて発見されたので、ベストプラクティスではないと確信していますが、機能し、今のところそれが必要でした.

Blam さん、ご協力いただきありがとうございます。私はそれらが役に立ちました。

于 2012-10-02T15:22:30.553 に答える