2011-05-06 7 views
6

デザインパネルでListViewにサンプルデータを入力するにはどうすればよいですか?VS WPFデザインパネルでコレクションデータを表示するにはどうすればいいですか?

私は困惑しています。私は読書やグーグルのかなりのビットをしてきたし、確かな答えを見つけることができません。 VS Designパネルに偽のデータを表示すると、いくつかの変更ごとにデバッグする必要がなくなり、テーマ設定が大幅に高速化されます。ここで

は私のコードです:

XAML:

<ListView DataContext="{Binding}" 
      Name="PeopleListView"> 
    <ListView.ItemTemplate> 
     <DataTemplate DataType="Person"> 
       <WrapPanel> 
        <TextBlock Text="{Binding Path=FirstNameView}"/> 
        <TextBlock Text="{Binding Path=LastNameView}" /> 
       </WrapPanel> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

COLLECTION:

public class People : ObservableCollection<Person> 
{ 
    public People() 
    { 
     this.Add(new Person() { FirstName = "John", LastName = "Doe" }); 
     this.Add(new Person() { FirstName = "John", LastName = "Doe" }); 
     this.Add(new Person() { FirstName = "John", LastName = "Doe" }); 
    } 
} 

MAIN:

private People PList; 

public MainWindow() 
{ 
    this.PList = new People(); 
    PeopleListView.ItemsSource = this.PList; 
} 

EDIT & PROGRESS:

私はマット・ウェストによって提供されたリンクで見つかったチュートリアルをお読みください。彼らはとても役に立ちました。私はほとんどこれを理解した。

Designerがサンプルデータを表示しようとすると問題が発生しました。私はサンプルのプロパティでこのエラーを受け取ります:Writable property or collection expected。私はエラーを理解して、私はちょうど各プロパティにsetステートメントを与えることなくそれを修正する方法を知らない。ここで

は私のコードです:

人クラス:

public class Person : INotifyPropertyChanged 
{ 
    private string _FirstName; 
    private string _LastName; 

    public string FirstName 
    { 
     get { return this._email; } 
     set 
     { 
      this._FirstName = value; 
      OnPropertyChanged("FirstName"); 
      OnPropertyChanged("FirstNameView"); 
     } 
    } 
    public string LastName 
    { 
     get { return this._password; } 
     set 
     { 
      this._LastName = value; 
      OnPropertyChanged("LastName"); 
      OnPropertyChanged("FirstNameView"); 
     } 
    } 
    public string FirstNameView 
    { 
     get { return this.FirstName; } 
    } 
    public string LastNameView 
    { 
     get { return this.LastName; } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 
    private void OnPropertyChanged(string propertyName) { /*...*/ } 
} 

PeopleViewSampleData.xaml:

<sample:People xmlns:sample="clr-namespace:MyProgram"> 
    <sample:Person FirstNameView="John" LastNameView="Doe" /> 
</sample:People> 

EDIT、SOLUTION:
を持ちます,DataContext:DataContextセットアップを以下のようにしました。そのうちのどれかが見つからなかった場合、何も表示されませんでした。

<ListView ItemsSource="{Binding}" 
      DataContext="{Binding}" 
      d:DataContext="{d:DesignData Source=/SampleData/PeopleListViewSampleData.xaml}"/> 

答えて

0

人物リストビューでDataContextを設定してItemsSourceを設定する必要はないと思います。 DataContext = {Binding}を取り除く。これがあなたの設計上の問題を解決するかどうかは不明です。一般的には、通常はd:DesignDataとd:DesignInstanceプロパティを使用することをお勧めします。チュートリアルです: http://karlshifflett.wordpress.com/2009/10/28/ddesigninstance-ddesigndata-in-visual-studio-2010-beta2/

+0

解決方法を教えてください。これらのエラーが発生しました。 '' DataContext 'プロパティが' ListView '型で見つかりませんでした。'、 'シンボル'を解決できません '、'シンボル 'DataContext'をこのコードで解決できません: DataContext = "....." ' – PiZzL3

+0

@ PiZzL3:上記のリンク先の他の記事を読んでください。http://karlshifflett.wordpress.com/2009/10/21/visual-studio-2010-beta2- sample-data-project-templates /これは 'd:'名前空間を追加する方法を説明しています – ChrisWue

+0

2番目のリンクをありがとう、残念ながらこれはうまくいきません。私はデバッグしない限り、 'ListView'のデータを表示しません。 – PiZzL3

関連する問題