0

ObservableCollection を含むクラスを実装しており、XAML にはポリラインがあります。XAML dataContext を this クラスにバインドし、ポリラインを Observable コレクションにバインドしました。しかし、もちろん、私は間違った型変換に直面しています。値コンバーターの例を見つけてコードに追加しましたが、XAML のリソースとして追加できません...

全体の構造はこんな感じ

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 の場合

<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>

そして背後のC#について

public partial class MainWindow : Window
{ 
    private externalClass toTest;

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

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

全体がうまく機能しますが、 <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.

この参照を追加する方法に関する提案はありますか??

4

1 に答える 1

2

名前空間が並んでいることを確認する必要があります。コンバータークラスをクラスから分離することから始めますexternalClass(XAMLからそのようなネストされたクラスを参照することさえ可能かどうかはわかりません):

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

localこれで、 xmlnsを定義し、次のリンクにリンクできますMyCompany.MyProject

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

そしてそれでコンバーターは書かれたようにアクセス可能でなければなりません。

<local:PointCollectionConverter x:Key="pointCollectionConverter"/>
于 2012-11-30T09:11:29.797 に答える