かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Windows Phone 7.1 SDKの環境でIDataErrorInfoを使うとデザイナがエラーを吐いて使えない

Windows Phone SDKを入れたVisual StudioでIDataErrorInfoを使ってるViewModelをXAMLでDataContextに指定したりするとデザイナがエラーを吐いて使えなくなります。再現手順は以下の通り。

IDataErrorInfoを継承したクラスを作る

using System.ComponentModel;

namespace IDataErrorInfoDesignTimeErrorSample
{
    public class SampleViewModel : IDataErrorInfo
    {
        #region IDataErrorInfo メンバー

        public string Error
        {
            get { return ""; }
        }

        public string this[string columnName]
        {
            get { return ""; }
        }

        #endregion
    }
}

MainPageのDataContextに上記のクラスを設定する

<phone:PhoneApplicationPage 
    x:Class="IDataErrorInfoDesignTimeErrorSample.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    xmlns:local="clr-namespace:IDataErrorInfoDesignTimeErrorSample"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">
    <!-- DataContextの設定 -->
    <phone:PhoneApplicationPage.DataContext>
        <local:SampleViewModel />
    </phone:PhoneApplicationPage.DataContext>
    ...中略...
</phone:PhoneApplicationPage>

デザイナーがエラーを吐く

皆同じ??

SkyDriveにプロジェクトを置いておくので、私の環境の問題なのか、それとも皆なるのか追試をお願いできないでしょうか?
IDataErrorInfoDesignTimeErrorSample.zip

Connectに登録してみました

もし、追試して頂いて同じエラーが出たなら下記のConnectの内容にぽちっと再現できたというボタンを押していただけると嬉しいです。
Windows Phone 7.1 SDKでIDataErrorInfoを継承したクラスをXAMLで宣言するとデザイナがエラーを吐く