2016-09-02 15 views
1

我定義了一個UserControl,其中我插入了以前在MainWindow中可用的TabItem內容,我這樣做是爲了更好地組織代碼。如何從Control中訪問MainWindow中的資源?

反正我已經使用靜態資源稱爲GroupedItems這個資源是可用的內部主窗口數的TabItem:

<Window.Resources> 
    <ResourceDictionary>  
     <CollectionViewSource Source="{Binding Matches}" x:Key="GroupedItems"> 
      <CollectionViewSource.GroupDescriptions> 
       <PropertyGroupDescription PropertyName="MatchNation" /> 
       <PropertyGroupDescription PropertyName="MatchLeague" /> 
      </CollectionViewSource.GroupDescriptions> 
     </CollectionViewSource> 
    </ResourceDictionary> 
</Window.Resources> 

在我的控制我有這樣的:

<ListView Name="Playing" ItemsSource="{Binding Source={StaticResource GroupedItems}}"> 

但是編譯器找不到資源'因爲我得到這個錯誤:

Cannot resolve the resource GroupedItems

th是爲什麼我在MainWindow資源中擁有此資源,我如何從控件訪問它?

+0

我認爲這將是最好的通過另一個綁定屬性 – slawekwin

+0

要通過資源的控制@slawekwin如果我有我X控件需要通過這個x次。我認爲最好在MainWindow(在一個地方)有資源'GroupedItems',並從任何地方訪問。 – AgainMe

+0

我打算給你的控件賦予一個依賴項屬性,並將你的靜態字典綁定到主窗口中的所有實例。這只是一個普遍的想法 – slawekwin

回答

1

移動它的App.xaml那麼它將成爲可用於當前的項目

<Application.Resources> 
<ResourceDictionary>  
    <CollectionViewSource Source="{Binding Matches}" x:Key="GroupedItems"> 
     <CollectionViewSource.GroupDescriptions> 
      <PropertyGroupDescription PropertyName="MatchNation" /> 
      <PropertyGroupDescription PropertyName="MatchLeague" /> 
     </CollectionViewSource.GroupDescriptions> 
    </CollectionViewSource> 
</ResourceDictionary> 
</Application.Resources> 
+0

似乎目前的工作,謝謝! – AgainMe