2010-03-26 86 views
5

OK,这是一个超级超级小白的问题,一个我几乎不好意思问...如何正确地从XAML引用类

我想在我的XAML文件中引用类。它是一个DataTemplateSelector,用于为DataGrid列选择正确的编辑模板。

无论如何,我已经将该类写入了我的代码,将本地名称空间添加到XAML顶部的顶部,但是当我尝试从XAML引用该类时,它告诉我该类不存在在本地命名空间中。我必须错过一些非常简单的东西,但我无法理解它...

这是我的代码。

XAML:

<Window 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:tk="http://schemas.microsoft.com/wpf/2008/toolkit" 
xmlns:local="clr-namespace:CustomFields" 
xmlns:col="clr-namespace:System.Collections;assembly=mscorlib" 
xmlns:sys="clr-namespace:System;assembly=mscorlib" 
x:Class="CustomFields.MainWindow" 
x:Name="Window" 
Title="Define Custom Fields" 
Width="425" Height="400" MinWidth="425" MinHeight="400"> 

<Window.Resources> 
    <ResourceDictionary> 
     <local:RangeValuesEditTemplateSelector> 
      blah blah blah... 
     </local:RangeValuesEditTemplateSelector> 
    </ResourceDictionary> 
</Window.Resources> 

C#:

namespace CustomFields 
{ 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      this.InitializeComponent(); 

      // Insert code required on object creation below this point. 
     } 
    } 

    public class RangeValuesEditTemplateSelector : DataTemplateSelector 
    { 
     public RangeValuesEditTemplateSelector(){ 

      MessageBox.Show("hello"); 
     } 
    } 
} 

任何想法我做错了吗?我认为这应该是简单的1-2-3 ...

谢谢!

回答

3

好吧......它突然开始工作。只好重建。

1

您可以添加一个键,以便您可以设置在XAML后面,而不是代码的datacontext:

<local:RangeValuesEditTemplateSelector x:key="RVETS"> 

然后例如设置外网的的DataContext:

<Grid DataContext={Binding Source = {StaticResource RVETS}} //Something like this I think 

然后该网格内的任何你可以直接绑定到你在代码后面设置的属性。 不知道这是否有用,只是想我会分享:)

+0

whoaa刚刚意识到这是2岁 – TMan 2012-04-22 03:52:25