2012-12-10 59 views
4

我創建了一個數據網格,顯示從數據庫填充的記錄表格 &想要在滿足某些條件時爲數據網格的單元格設置動畫。 爲此,我創建了一個名爲的轉換器類,BlinkConverter繼承了IValueConverter。mapping在XAML中的命名空間不工作

把這個轉換器轉換成行動,我制訂了項目的命名空間到XAML編輯器

 xmlns:local="clr-namespace:BlinkApplication" 

注:BlinkApplication是我的項目

名稱後添加這個,我想創建一個我的BlinkConvertor類與Windows.Resources集合綁定類的實例,作爲

 <Window.Resources> 
     <local:BlinkConverter x:key="Blink"></local:BlinkConverter> 
     </Window.Resources> 

這裏我的智能感知未檢測類BlinkCoverter後,我鍵入「地方:」,即使我嘗試鍵入,我有一個錯誤,指出「之類地方:BlinkConverter沒有被發現。確認你缺少一個程序集引用,並且所有引用的程序集都已經編譯好了。「

即使我在xaml編輯器中添加了xmlns下的整個項目 這裏有什麼問題?

我必須Converter類添加爲MainWindow.xaml.cs類的部分或添加新類的命名轉換,然後將其映射到MainWindow.xaml.cs類?

因爲在首先嚐試,我在第一次嘗試中添加了Mainwindow.xaml.cs的一部分,然後我的Intellisense沒有檢測到,但是當我將一個單獨的類添加爲Converter.cs時,我的Intellisense檢測到但我不知道映射到我的Mainwindow.xaml.cs類:(

Converter.cs

 public class Converter : IValueConverter 
     { 
     public object Convert(object value, Type targetType, object parameter,   CultureInfo culture) 
     { 
      string cellvalue = value.ToString(); 
      return cellvalue = ("Pass"); 
     } 
     public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
     return false; 
     } 

MainWindow.xaml.cs

 namespace BlinkApplication 
    { 
     public partial class MainWindow : Window 
    { 
      SqlConnection cn; 
      SqlDataAdapter da; 
      DataSet ds; 
      public MainWindow() 
    { 
     InitializeComponent(); 
     DataContext = this; 
     cn = new SqlConnection(@"Data Source=CZC0239ZWZ\SQLEXPRESS; Initial Catalog  =Student; Integrated Security=true"); 
     cn.Open(); 
    } 

    private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
    da = new SqlDataAdapter("select * from dbo.View_StudentResults",cn); 
    ds = new DataSet(); 
    da.Fill(ds); 
    dataGrid1.ItemsSource=ds.Tables[0].DefaultView; 

    } 

    } 
} 
+0

你能舉個例子嗎? – user1221765

+0

也許愚蠢的問題,但你試圖*重建*你的項目? – Clemens

+2

我重建項目..但我得到同樣的錯誤。 – user1221765

回答

2

解決方法是在我的項目中添加一個單獨的類作爲myConverter在BlinkApplication.Converters命名空間下,生成項目&這會將該類添加到正確的命名空間的項目中,供xaml解釋器找到它。

然後在MainWindow.xaml,在頂部加入轉爐命名空間

 xmlns:local="clr-namespace:BlinkApplication.Converters" 

注意到它作爲Converters.cs文件中聲明的命名空間相匹配,即「本地」標籤與BlinkApplication關聯.Converters命名空間。

它已被聲明後,我可以在窗口或任何其他控制資源中使用它。

1

請定義爲確保您的轉換器的方式「上市」。

+0

是的,我的轉換器是公開的 「公共類BlinkConverter:IValueConverter」 – user1221765

+0

嘗試忽略此錯誤,並運行您的項目。它工作嗎? – user1064519

+0

它不起作用,我得到例外。我已經編輯我的問題更加精確。謝謝 – user1221765