簡體   English   中英

映射XAML中的命名空間不起作用

[英]mapping Namespace in XAML not working

我創建了一個數據網格,它顯示了一個從數據庫填充的記錄表,並希望在滿足某些條件時為數據網格的單元格設置動畫。 為此,我創建了一個名為BlinkConverter的轉換器類,它繼承了IValueConverter。

為了使這個轉換器付諸行動,我將項目命名空間映射到xaml編輯器上

       xmlns:local="clr-namespace:BlinkApplication"

注意: BlinkApplication是我的項目的名稱

添加之后,我試圖用Windows.Resources集合為Binding創建一個BlinkConvertor類的實例

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

在我鍵入“local:”后 ,我的Intellisense沒有檢測到BlinkCoverter類,即使我嘗試輸入,我也有一個錯誤,指出“類型本地:找不到BlinkConverter。驗證您是否缺少程序集引用,並且所有參考組件已經建成。“

即使我已經在我的xaml編輯器中的xmlns下添加了整個項目。 這有什么不對? 我錯過了任何參考?

我是否必須將Converter類添加為MainWindow.xaml.cs類的一部分,或者添加一個新的類命名Converter,然后將其映射到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;

    }

  }
}

解決方案是在我的項目中將一個單獨的類作為myConverter添加到BlinkApplication.Converters命名空間之后,構建項目並將此類添加到項目的正確名稱空間中,以便xaml解釋器找到它。

然后在MainWindow.xaml中,將頂部的轉換器命名空間添加為

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

請注意,它與Converters.cs文件中聲明的名稱空間相匹配,該名稱空間將“local”標記與BlinkApplication.Converters名稱空間相關聯。

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

確保您的轉換器定義為“公共”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM