2013-04-02 12 views
5

İçinde bir Birim listesi olan basit bir görünüm modelim var, bu çalışma zamanında iyi görünüyor, ancak listenin tasarım zamanında gösterilmesini isterim. Bazı sorulara göre, aşağıdakileri denedim, ama işe yaramıyor, birisi yardım edebilir mi?WPF Tasarım Süresi Görüntüleme Modeli

//In resources 
<local:MainViewModel x:Key="DesignViewModel"/> 

Sunucu

<ItemsControl ItemsSource="{Binding Units}" d:DataContext="{Binding Source={StaticResource DesignViewModel}}" Background="Transparent"> 

görünümü modeli

public MainViewModel() 
    { 
     Units = new ObservableCollection<UnitViewModel>(); 
     Units.Add(new UnitViewModel 
     { 
      ID = "1", 
      Degrees = "80", 
      IsMaster = true 
     }); 
     for (int i = 0; i < 10; i++) 
      Units.Add(new UnitViewModel 
      { 
       ID = "2", 
       Degrees = "40", 
       IsMaster = false 
      }); 
    }   
} 
+1

Tamam görünüyor. görünümü yenilemeyi denediniz mi? çalışma zamanında düzgün görüntülendi mi? – Nahum

cevap

5

Eğer UnitViewModel için kod tanımını paylaşabilir miyim? Bindings'in yalnızca Açık Alanlarda değil, Özellikler'de çalıştığını unutmayın. Kodunuzu denedim ve Birimler için bazı temel yapı alanları oluşturdum. Onlar işe yaramadı. Bu yüzden, belki de özellikleri yerine alanların kullanıldığı tahmin edersiniz:

public class MainViewModel 
    { 
     public MainViewModel() 
     { 
      Units = new ObservableCollection<UnitViewModel>(); 
      Units.Add(new UnitViewModel 
      { 
       ID = "1", 
       Degrees = "80", 
       IsMaster = true 
      }); 
      for (int i = 0; i < 10; i++) 
       Units.Add(new UnitViewModel 
       { 
        ID = "2", 
        Degrees = "40", 
        IsMaster = false 
       }); 
     } 

     public ObservableCollection<UnitViewModel> Units { 
      get; 
      set; 
     } 
    } 


    public struct UnitViewModel 
    { 
     public string ID { get; set;} 
     public string Degrees { get; set;} 
     public bool IsMaster { get; set;} 

    } 

} 

Bu kodu sonuna kadar denedim ve sorun yaşamadım.

<Window 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="WpfApplication1.MainWindow" 
     xmlns:local="clr-namespace:WpfApplication1" 
     Title="MainWindow" d:DesignWidth="704"> 
    <Window.Resources> 
     <local:MainViewModel x:Key="DesignViewModel" /> 
     <DataTemplate x:Key="DataTemplate2"> 
      <Grid > 
       <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding ID}" VerticalAlignment="Top"/> 
      </Grid> 
     </DataTemplate> 
    </Window.Resources> 
    <Grid d:DataContext="{StaticResource DesignViewModel}"> 
     <ItemsControl HorizontalAlignment="Left" Height="450" VerticalAlignment="Top" Width="632" ItemsSource="{Binding Units}" 
      /> 
    </Grid> 
</Window> 

Veri sunumunu doğru şekilde biçimlendirmek için bir ItemTemplate ekleyin.