2011-03-10 50 views
1

我已經使用Prism4構建了Silverlight 4應用程序。我在shell.xaml中創建了幾個內容區域,一切正常。現在我想要執行以下操作: 在shell.xaml中,我們在佈局中有一個標題欄(標籤如下所示)。在那裏,我們希望根據主要內容區域中顯示的視圖動態更改標題字符串的值。 任何想法如何以簡單的方式完成此任務?Silverlight 4 + Prism將動態字符串添加到外殼中的標題欄

<sdk:Label Content="Should be dynamic" FontWeight="SemiBold" Grid.ColumnSpan="3" Grid.Row="0" Grid.Column="2" BorderThickness="0" Background="{StaticResource DetailHeaderBackground}" ></sdk:Label> 

謝謝!

回答

0

由於我使用的是由棱鏡模塊現在我做到了這樣的出口觀點填充PRISM地區:

public static void AddLabelToHeaderRegion(string HeaderName, IRegionManager regionManager) 
    { 
     Label headerLabel = new Label 
     { 
      Content = HeaderName, 
      FontWeight = System.Windows.FontWeights.SemiBold, 
      Background = (System.Windows.Media.Brush)Application.Current.Resources["DetailHeaderBackground"], 
      Padding = new Thickness(30, 3, 0, 3), 
      BorderThickness = new Thickness(0), 
      Margin = new Thickness(0) 

     }; 
     Grid.SetColumn(headerLabel, 2); 
     Grid.SetRow(headerLabel, 0); 
     Grid.SetColumnSpan(headerLabel, 3); 
     IRegion headerBarRegion = regionManager.Regions[RegionNames.HeaderBarRegion]; 
     if (headerBarRegion != null) 
     { 
      foreach (var item in headerBarRegion.ActiveViews) 
      { 
       headerBarRegion.Remove(item); 
      } 

      headerBarRegion.Add(headerLabel); 
     } 
    } 

我可以在任何地方使用這個我通過導入當前區域經理MEF。

0

使用MVVM你連線了標籤到底層視圖模型,那麼當您更改視圖只更新屬性:底層模型

<sdk:Label 
    Content="{Binding ViewModel.HeaderBarLabelText, Mode=OneWay}" 
    FontWeight="SemiBold" 
    Grid.ColumnSpan="3" 
    Grid.Row="0" 
    Grid.Column="2" 
    BorderThickness="0" 
    Background="{StaticResource DetailHeaderBackground}" > 
</sdk:Label> 

然後,你必須

[ViewModelProperty(null)] 
public int HeaderBarLabelText 
{ 
    get 
    { 
     return _headerBarLabelText; 
    } 
    set 
    { 
     _headerBarLabelText= value; 
     OnPropertyChanged(() => HeaderBarLabelText); 
    } 
} 

它得到如果你的「內容區域」/「視圖」是Prism模塊,那麼更復雜一些,在這種情況下,CodeProject上的Prism教程涵蓋了大部分基礎。

http://www.codeproject.com/KB/silverlight/PrismTutorial_Part1.aspx

+0

是的區域填充了(MEF-)Prism模塊的導出視圖。 – hoetz 2011-03-10 12:13:46