2014-02-07 3 views
2

2 개의 어셈블리 프로젝트가 있고 Library.Books 프로젝트에서 BooksGrid를 참조하려고합니다. Library.UI 어셈블리 프로젝트에서 계속하지만 "리소스를 찾을 수 없습니다 'grid/booksgridlist.xaml "파일은 아래에 설명 된대로 존재합니다.
다른 유사한 질문에서 설명한대로 거의 모든 것을 시도했지만 아무 효과가 없습니다. 내가 뭐 잘못하고있는거야? 어떤 도움이든 사전에 높이 평가됩니다.WPF에서 리소스를 찾을 수 없습니다

Library.Books 어셈블리 프로젝트의 BooksGrid.cs. 참고 : BooksGridList.xaml은이 동일한 프로젝트에있는 리소스 파일입니다. BooksGrid.cs의 절대 경로 : C : \ Library.Books \ Grids \ BooksGrid.cs BooksGridList.xaml의 절대 경로 : C : \ Library.Books \ Grids \ BooksGridList.xaml 및 빌드 이 파일의 작업이로 설정되어 있습니다. "리소스"및 출력 디렉토리에 복사가 "복사 안 함"으로 설정되어 있습니다. "복사 항상"시도했지만 작동하지 않았습니다. 나는 프로젝트를 청소하고 다시 빌드했지만 여전히 작동하지 않았다.

namespace Library.Books.Grids 
{ 
    public class BooksGrid 
    { 
    public BooksGrid() 
    { 
     AutoGenerateColumns = false; 
     CanUserAddRows = false; 
     IsReadOnly = true; 
    ResourceDictionary dictionary = new ResourceDictionary 
     { 
      Source = new Uri("pack://application:,,,/Library.Books;component/Grids/BooksGridList.xaml") 
     }; 
    } 
    } 
} 

는 BooksSelector.xaml Library.UI 조립 프로젝트 BooksSelector.xaml에 대한 절대 경로 : C : \ Library.UI \ Library.UI.BooksSelector

<UserControl x:Class=" Library.UI.BooksSelector" DataContext="{Binding RelativeSource= {RelativeSource Self}}" 
     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" 
     xmlns:ex="clr-namespace:Library.Books.Grids;assembly=Library.Books" 
     xmlns:dx="clr-namespace:Library.Sections.Converters;assembly=Library.Sections"> 
<UserControl.Resources> 
    <dx:FormattingConverter x:Key="ValueConverter" /> 
</UserControl.Resources> 
<Grid> 
<ex:BooksGrid Name="LibraryCtrl" Grid.Column="0" Grid.Row="1" TabIndex="2" SelectionChanged="LibraryCtrl_OnSelectionChanged" PropertyChanged="LibraryCtrl_OnPropertyChanged"> 
    <ex:BooksGrid.Columns > 
    <DataGridTextColumn Width="100" Header="ISBN" SortMemberPath="ISBN" Binding="{Binding Path=ISBN}" /> 
    <DataGridTextColumn Width="180" Header="Name" SortMemberPath="Name" Binding="{Binding Path=Name}" /> 
    <DataGridTextColumn Visibility="Collapsed" Width="70" Header="LibraryCode" SortMemberPath="LibraryCode" Binding="{Binding Path=LibraryCode}" />     
    </ex:BooksGrid.Columns> 
    </ex:BooksGrid> 
</Grid> 
</UserControl> 

답변

4

왜이 일을하지 않습니다 xaml.

<UserControl.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="/Library.Books;component/Grids/BooksGridList.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
</UserControl.Resources> 
+0

xaml (Library.UI.BooksSelector)을 의미합니까? 그렇다면 참조 된 어셈블리 (Library.Books) 대신 Library.UI 어셈블리의 리소스를 의미하지 않습니까? –

+0

이 스타일을 적용하려는 Usercontrol.xaml을 말합니다. 이 경우 MainWindow에도 추가 할 수 있습니다.이 경우 대신 를 사용해야합니다. –

+0

원본 = "{응용 프로그램 이름}; 구성 요소/{확장자가있는 리소스 경로}" – George

관련 문제