2011-11-30 49 views
0

我需要加快WPF中的一些中間事物的速度,並且我正在構建這個小型應用程序作爲我的學習理由。需要這個簡單的WPF單窗口加載頁面的一些指導

我收集了五張照片。每張圖片都有一些與之相關的數據:所有者,日期,大小等。

我希望能夠點擊該圖片並將該信息加載到相同窗口中顯示。我不想在新打開的窗口中加載信息。

任何關於搜索什麼的建議,甚至是關於該過程的一個小口頭步驟?

我正在使用Frame加載最初的五張圖片,但是我不知道如何在用戶控件中註冊點擊的情況下捕獲主窗口上的點擊。

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="22" /> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 
    <Menu Grid.Row="0"> 
     <MenuItem Header="_File" /> 
     <MenuItem Header="_Edit" /> 
     <MenuItem Header="_View" /> 
     <MenuItem Header="_Help" /> 
    </Menu> 
    <Frame Grid.Row="1" Name="contentFrame" Source="Roster.xaml" /> 
</Grid> 

然後在Roster.xaml:

<UserControl x:Class="OracleOfLegends.Roster" 
      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" 
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"> 
    //Lots of goodies here. 
</UserControl> 

回答

0

您可以使用Frame,你可以瀏覽到包含信息的新UserControl做幾乎同樣的事情在WPF。

1

你從來沒有想過你模型對象提到...所以我會假設它作爲

型號

public class MyPicture : INotifyPropertyChanged 
{ 
    private string url; 
    private string name; 
    // Other fields 

    public Url 
    { 
      get{ return value;} 
      set{url=value;} 
      OnPropertyChanged("Url") 
    } 
} 
    //Do same for other fields . I leave the implementation if INPC on you 

視圖模型MyPictureListViewModel

public MyPictureListViewModel:INotifyPropertyChanged 
    { 
      ObservableCollection<MyPictureList> picList; 
      public PicList 
      { 
        get{return value;} 
        set{piclist=value;} 
        OnPropertyChanged("PicList") 
      } 
      //Fill the list with some methods... it depends on you 
    } 

/// <summary> 
/// Interaction logic for MyUserControl.xaml 
/// </summary> 
public partial class PicListDisplay 
{ 
    private readonly MyPictureListViewModel 
     myPictureListViewModel; 

    /// <summary> 
    /// PicListDisplay 
    /// </summary> 
    public PicListDisplay() 
    { 
     myPictureListViewModel= new MyPictureListViewModel(); 
     this.DataContext = myPictureListViewModel; 
     InitializeComponent(); 
    } 
} 

      I would prefer to use ListView 
     <ListView Name="myPicListView" ItemsSource={Binding PicList}> 
        <ListView.ItemTemplate> 
             <Datatemplate> 
                <UserControls:Roster/>   
             </DataTemplate> 
        </ListView.ItemTemplate> 

     </ListView> 
        // Here i am just Displaying the name you can put any control you want 
     <StackPanel DataContext="{Binding Path=SelectedItem,Elementname=myPicListView}"> 
     <TextBlock Text="{Binding Path=Name}"></TextBlock> 
     </StackPanel>   </UserControl> 

在這裏,我已經做出了ListView控件,然後在選擇列表視圖,你可以在同一個窗口獲得數據....你也可以創建你自己的視圖,像Windows資源管理器或其他,並在列表中使用查看