2010-03-26 87 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