2010-03-26 16 views
5

OK, esto es una cuestión novato super super, que estoy casi vergüenza de hacer ...cómo hacer referencia a una clase adecuada de XAML

quiero hacer referencia a una clase en mi archivo XAML. Es un DataTemplateSelector para seleccionar la plantilla de edición correcta para una columna DataGrid.

De todos modos, escribí la clase en mi código, agregué el espacio de nombres local a la parte superior de la XAML, pero cuando trato de hacer referencia a la clase de XAML, me dice que la clase no existe en el espacio de nombres local. Debo extrañar algo realmente muy simple, pero no puedo entenderlo ...

Aquí está mi código.

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"); 
     } 
    } 
} 

Alguna idea de lo que estoy haciendo mal? Pensé que esto debería ser simple como 1-2-3 ...

¡Gracias!

Respuesta

3

OK ... de repente comenzó a funcionar. Solo tuve que reconstruir.

1

Usted puede agregar una clave para que pueda establecer el DataContext en el xaml lugar detrás de código:

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

Entonces, por ejemplo, establecer de la red externa DataContext:

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

Entonces cualquier cosa dentro de esa cuadrícula solo puede enlazar directamente a la propiedad que establece detrás del código. No estoy seguro de si esto es útil o no, solo pensé en compartir :)

+0

whoaa acaba de darse cuenta de esto es de 2 años de edad – TMan

Cuestiones relacionadas