2010-03-26 25 views
5

OK, đây là một câu hỏi noob siêu siêu, người ta rằng tôi gần như xấu hổ để hỏi ...Làm thế nào để tham khảo đúng một lớp từ XAML

Tôi muốn tham khảo một lớp trong file XAML của tôi. Đó là một DataTemplateSelector để chọn đúng mẫu chỉnh sửa cho một cột DataGrid.

Dù sao, tôi đã viết lớp vào mã của tôi, thêm không gian tên cục bộ lên đầu XAML, nhưng khi tôi cố gắng tham khảo lớp từ XAML, nó cho tôi biết lớp không tồn tại trong không gian tên cục bộ. Tôi phải thiếu một cái gì đó thực sự thực sự đơn giản nhưng tôi chỉ không thể hiểu nó ...

Đây là mã của tôi.

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

Bất kỳ ý tưởng những gì tôi đang làm sai? Tôi nghĩ điều này đơn giản như 1-2-3 ...

Cảm ơn!

Trả lời

3

OK ... nó đột nhiên bắt đầu hoạt động. Chỉ cần phải xây dựng lại.

1

Bạn có thể thêm một chìa khóa để bạn có thể thiết lập các DataContext trong XAML thay vì đằng sau mã:

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

Sau đó, ví dụ như thiết lập DataContext lưới bên ngoài của:

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

Sau đó, bất cứ điều gì trong lưới mà bạn chỉ có thể liên kết trực tiếp với thuộc tính mà bạn đặt phía sau mã. Bạn không chắc chắn điều này có hữu ích hay không, chỉ cần nghĩ rằng tôi muốn chia sẻ :)

+0

whoaa vừa nhận ra đây là 2 tuổi – TMan

Các vấn đề liên quan