2012-11-30 4 views
0

ObservableCollection이 포함 된 클래스를 구현 중이며 내 XAML에는 폴리 라인이 있습니다. XAML dataContext를이 클래스에 바인딩하고 폴리 라인을 Observable 컬렉션에 바인딩했습니다. 하지만 지금은 물론 잘못된 유형 변환에 직면하고 있습니다. 나는 값 변환의 예를 발견하고 나는 내 코드에 추가하지만멤버 메서드를 리소스로 추가

전체 구조가 같은 그

public class externalClass 
{ 
    public ObservableCollection<Point> debugCh1 { get; set; } 

    public void test() 
    { 
     ... performo modifications 
      on debugCh1 for testing purposes... 
    } 

    public class PointCollectionConverter : IValueConverter 
    { 
     .. implements convert and cnverBack 
    } 
} 

보이는 ... 내 XAML에 리소스로 추가 할 수 아니에요 XAML

<Window x:Class="tester.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="277" Width="525" xmlns:my="clr-namespace:binding;assembly=binding" xmlns:my1="clr-namespace:deviceManager;assembly=deviceManager" Closing="Window_Closing"> 


    <Window.Resources> 
     <local:PointCollectionConverter x:Key="pointCollectionConverter"/> 
    </Window.Resources> 


      ... The window Itself ... 
     <Polyline Points="{Binding debugCh1}" /> 
      ... 
</Window> 

public partial class MainWindow : Window 
{ 
    private externalClass toTest; 

    public MainWindow() 
    { 
     InitializeComponent(); 
     DataContext = toTest; 
    } 

    private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     toTest.test(); 
    } 
} 

어 뒤에 C 번호 OLE 것은 좋은 작동하지만 <local:PointCollectionConverter..

컴파일러에 대한 The type 'local:PointCollectionConverter' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

이 참조를 추가하는 방법에 대한 어떤 제안을 말한다 ??

답변

2

네임 스페이스가 정렬되어 있는지 확인하면됩니다.

이제
namespace MyCompany.MyProject 
{ 
    public class PointCollectionConverter : IValueConverter 
    { 
     .. implements convert and cnverBack 
    } 
} 

당신이 local의 xmlns를 정의하고 연결할 수 있습니다 : 나는 externalClass 클래스에서 변환기 클래스를 분리하여 시작 했죠 (I는 XAML에서 그런 식으로 중첩 클래스를 참조하는 경우에도 가능 확실하지 않다) ~ :

<Window xmlns:local="clr-namespace:MyCompany.MyProject" 

그리고 컨버터는 서면으로 액세스 할 수 있어야합니다. `그것이 아마 작동하지 않습니다하지만 : 당신이 중첩 된 클래스를 참조 할 수있는 경우

<local:PointCollectionConverter x:Key="pointCollectionConverter"/> 
+0

i는 구문이 ' 같은 것으로 기대. –

+0

중첩 된 참조를 테스트하지 않았지만 네임 스페이스와 조금만 고투하여 이제 모든 것이 함께 작동합니다. 주요 문제는 대부분의 예제에서 xmlns : local ..을 선언한다고 가정하고 자동으로 생성되지 않습니다 : ( 감사합니다. 고마워! – javirs

관련 문제