Jak mogę uzyskać dane programu DesignTime w WinRT XAML, aby projektant wyświetlał przykładowe dane?Jak uzyskać dane programu DesignTime w WinRT XAML?
Odpowiedz
Wystarczająco proste.
stworzyć model takiego:
public class Fruit
{
public string Name { get; set; }
}
Tworzenie ViewModel bazowe tak:
public class BaseViewModel
{
public ObservableCollection<Fruit> Fruits { get; set; }
}
stworzyć prawdziwe ViewModel tak:
public class RealViewModel : BaseViewModel
{
public RealViewModel()
{
if (!Windows.ApplicationModel.DesignMode.DesignModeEnabled)
LoadData();
}
public void LoadData()
{
// TODO: load from service
}
}
Tworzenie fałszywego-dane ViewModel like this:
public class FakeViewModel : BaseViewModel
{
public FakeViewModel()
{
this.Fruits = new ObservableCollection<Fruit>
{
new Fruit{ Name = "Blueberry"},
new Fruit{ Name = "Apple"},
new Fruit{ Name = "Banana"},
new Fruit{ Name = "Orange"},
new Fruit{ Name = "Strawberry"},
new Fruit{ Name = "Mango"},
new Fruit{ Name = "Kiwi"},
new Fruit{ Name = "Rasberry"},
new Fruit{ Name = "Blueberry"},
};
}
}
Czy to w XAML:
<Page.DataContext>
<local:RealViewModel />
</Page.DataContext>
<d:Page.DataContext>
<local:FakeViewModel />
</d:Page.DataContext>
zabawy!
PS: można także próbować użyć d:DesignData. To podejście również działa. Uważam, że nie jest to tak proste. W końcu to od ciebie zależy, jak to zrobić. Tak czy siak, nie przegap danych DeisgnTime!
Oto d: próbka DesignInstance:
będę również użyć owoców klasy Jerry'ego, ale nie będę używać MVVM tu nie trzeba, że aby to działa.
Zasadniczo musimy utworzyć klasę modelu danych (np. ViewModel lub Model), która ma mieć dane projektowe (np. W tym przypadku tworzę klasę potomną, ale nie trzeba).
public class Fruit
{
public string Name { get; set; }
}
public class SampleFruit : Fruit
{
public SampleFruit()
{
Name = "Orange (Sample)";
}
}
Wtedy w naszym XAML, możemy użyć d: DataContext związać klasę dzieci.
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"
DataContext="{Binding}"
d:DataContext="{Binding Source={d:DesignInstance Type=local:SampleFruit, IsDesignTimeCreatable=True}}">
<TextBlock Text="{Binding Name}"
HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="42"/>
</Grid>
Uwaga ten wiersz:
d:DataContext="{Binding Source={d:DesignInstance Type=local:SampleFruit, IsDesignTimeCreatable=True}}"
Teraz powinieneś zobaczyć swoje dane czasie projektowania zarówno Visual Studio Designer i mieszanki.
PS: W Blend 2013 istnieje zakładka danych, która pozwala również tworzyć przykładowe dane.
Brilliant. Po prostu genialny. Dzięki. –
- 1. WinRT XAML niestandardowe przejście
- 2. Jak klonować UIElement w WinRT XAML C#?
- 3. Dane programu DesignTime nie są wyświetlane w mieszaniu po powiązaniu z CollectionViewSource
- 4. Gdzie dostęp DataContext w WinRT XAML UserControl
- 5. Jak uzyskać właściwości klasy w WinRT
- 6. Wykryj DesignTime w kodzie WP7
- 7. Prymitywy XAML w WinRT/Win8 Metro
- 8. Gdzie jest selektor dat w WinRT XAML?
- 9. Gdzie jest RadialGradientBrush w WinRT XAML?
- 10. Jak utworzyć dokument programu Word w WinRT
- 11. ListBox Kolor tła (XAML/WinRT/Metro)
- 12. Winrt Dependency Property Błąd Visual Studio XAML.
- 13. Skala WinRT (C#/XAML) bez rozmycia
- 14. Jak uzyskać rozmiar pliku w WinRT?
- 15. Jak uzyskać aktualny język w aplikacji WinRT?
- 16. Jak powiązać dane zagnieżdżonych ListView ItemTemplates w Metro/WinRT?
- 17. Frame.Navigate do strony XAML w innym zestawie [WinRT]
- 18. Wybór między ListView i GridView XAML w WinRT
- 19. Tworzenie zakładek w WinRT
- 20. Przyklejony nagłówek w ListView i GridView WinRT xaml
- 21. Jak uzyskać rozdzielczość ekranu? Dla aplikacji WinRT?
- 22. Jak uzyskać dane z formularza za pomocą programu iskra java?
- 23. WinRT XAML Znajdź sterowanie wewnątrz szablonu elementu FlipView Pozycja
- 24. WinRT (Win 8) Store App Wiązania XAML RelativeSourceMode Brak FindAncestor?
- 25. Jak uzyskać dane HttpRequestMessage
- 26. Szyfrowanie strumienia WinRT
- 27. Jak uzyskać rozmiar ekranu z xaml?
- 28. Jak programowo importować dane programu Excel do tabeli programu Access?
- 29. W WinRT C# jak zapisać drzewo XAML poza ekranem przy użyciu RenderTargetBitmap?
- 30. Jak uzyskać konkretną ikonę w pojemniku (np. Dll) w XAML?
Chciałbym zobaczyć przykład użycia d: DesignData :) – swinefeaster
Właściwie nigdy go nie znaleziono, zobacz: http://stackoverflow.com/questions/8303803/setting-design-time-datacontext-on-a-window -is-give-a-kompilator-błąd. Jest to lepsze, ponieważ możesz to zrobić tylko poprzez xaml i nie musisz mieć z nim zbyt wiele w kodzie, co ma więcej sensu (i tak dla mnie). – swinefeaster
Porozmawiaj ze mną po wypróbowaniu innego podejścia w Windows8. –