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;
}
}
}
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
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.