Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

mapping Namespace in XAML not working

I have created a datagrid which displays a Table of records populating from a Database & would like to animate the cells of the datagrid when certain condition is met. For this I created a converter class named BlinkConverter that inherits IValueConverter.

to put this converter into action, I have mapped the project namespace onto the xaml editor as

       xmlns:local="clr-namespace:BlinkApplication"

Note : BlinkApplication is the name of my Project

After adding this, I am trying to create an instance of my BlinkConvertor class for Binding with Windows.Resources collection as

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

here my Intellisense is not detecting the class BlinkCoverter after I type "local: " , even if I try to type, I have an error stating "The type local:BlinkConverter was not found. Verify that you are missing an assembly reference and that all referenced assemblies have been built."

Even though I have added the entire project under the xmlns in my xaml editor . What is wrong here ? have I missed any reference ?

Do I have to add the Converter class as a part of the MainWindow.xaml.cs class or add a new class naming Converter and then mapping it to the MainWindow.xaml.cs class ?

Because on the first try, I added the as a part of Mainwindow.xaml.cs on the first try, then my Intellisense didn't detect, but when I added a separate class as Converter.cs , my Intellisense detects but I dont know the way to map to my Mainwindow.xaml.cs class :(

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;

    }

  }
}
like image 942
Indhi Avatar asked Dec 10 '12 11:12

Indhi


People also ask

How do I use namespace in XAML?

A XAML namespace is really an extension of the concept of an XML namespace. The techniques of specifying a XAML namespace rely on the XML namespace syntax, the convention of using URIs as namespace identifiers, using prefixes to provide a means to reference multiple namespaces from the same markup source, and so on.

Does not exist in XML namespace?

To resolve the error “The tag does not exist in XML namespace” in WPF application, need to ensure whether the Target framework of an application and Target framework of a referred Syncfusion assemblies are of same version.

What is MC ignorable D?

The mc:Ignorable namespace provides xaml definitions that are "ignored" by the xaml processor. This allows you to specify information used by the designer at design time which is ignored at runtime.

What is xmlns D?

xmlns : d and xmlns : mc are the schemas used to represent the design view of application. Design view is the designer area of application.


1 Answers

The solution is after adding a separate class to my project as myConverter under BlinkApplication.Converters namespace, Build the project & this adds the class into the project at the correct namespace for the xaml interpreter to find it.

Then in MainWindow.xaml, add the converter namespace at the top as

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

Notice that it matches the namespace as declared in the Converters.cs file, that associates the "local" tag with the BlinkApplication.Converters namespace.

After it has been declared, I can use it in window or any other control resources.

like image 53
Indhi Avatar answered Oct 29 '22 00:10

Indhi