2012-04-04 5 views
3

他の人がこのエラーメッセージについて他の質問で尋ねてきましたが、私自身はこれを解決するために何が起こっているのか十分理解していないようです。私は、WPFのUserControl部分宣言で異なる基本クラスを指定してはいけませんか?

public partial class EnterNewRequest : UserControl 

を持っていることによって、このエラーを作成した。しかしその後の私は、ユーザーコントロールにメソッドを追加したいので、私は、私はオーバーライドする必要があるため、そこに(拡張子を使用することはできませんそれを固執する継承を使用しましたこの方法)。しかし、今私のusercontrolが動揺している、私は変更する必要があるxamlの何がわからない。 UserControl変更ブロックは名前空間RCO_Managerにあります。これは私のxamlです:

<UserControl x:Class="RCO_Manager.EnterNewRequest" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
+3

エラーは何ですか?私は 'WindowIsUpsetException'について聞いたことがありません。しかし、恐ろしいようだ! –

+1

@Baboon msdnで確認してください.WindowsCantReadMyMindAndMagicallyFixThisクラスに基づいています。 – cost

+0

そして 'InnerException'とは何ですか? –

答えて

7

私はWindows Phoneで作業していたときに同じ問題がありました。正確な例外は覚えていませんが、XAML here on GitHub,the page code herebase page code here(私のものはベースコントロールではなく、ベースページでした)を見ることができます。私は新しいXAML名前空間を追加し、<UserControl/>宣言を変更するために必要な:

コード昇天

namespace RCO_Manager 
{ 
    // Inherits **Base**UserControl, not UserControl 
    public partial class EnterNewRequest : BaseUserControl 
    { 
     // Magic goes here 
     ... 
    } 
} 

XAML

<local:BaseUserControl 
    xmlns:local="clr-namespace:RCO_Manager" 
    x:Class="RCO_Manager.EnterNewRequest" 

側注

Baboonによれば、XAMLに基底クラスを指定するとコードビハインドで指定する必要はないため、コードビハインドを変更して次のように変更できます。私は今それを確認することはできませんが、あなたがそれを働かせた後でこれを試すことができます。

public partial class EnterNewRequest // Don't specify BaseUserControl here 
{ 
    ... 
+0

ところで、XAMLとコードビハインドの両方で基本クラスを宣言することは冗長です。 –

+0

少なくともWindows Phoneでは、XAMLではなくコードにBaseUserControlを置くだけで、同じ 'WindowIsUpsetException'を取得しました。多分彼の問題を解決するだろうか?私は同じ問題を抱えていると私の答えを更新します。 –

+0

コードビハインドで削除できます。 –