データベースから入力されたレコードのテーブルを表示するデータグリッドを作成しました。特定の条件が満たされたときにデータグリッドのセルをアニメーション化したいと考えています。このために、IValueConverter を継承するBlinkConverterという名前のコンバーター クラスを作成しました。
このコンバーターを動作させるために、プロジェクトの名前空間を xaml エディターに次のようにマップしました。
xmlns:local="clr-namespace:BlinkApplication"
注: BlinkApplicationは私のプロジェクトの名前です
これを追加した後、Windows.Resources コレクションとのバインド用にBlinkConvertorクラスのインスタンスを作成しようとしています。
<Window.Resources>
<local:BlinkConverter x:key="Blink"></local:BlinkConverter>
</Window.Resources>
ここで、 "local: "と入力した後、Intellisense がクラス BlinkCoverter を検出しません。入力しようとしても、"The type local:BlinkConverter was not found. Verify that you are missing an assembly reference and that all参照されたアセンブリがビルドされました。」
プロジェクト全体を 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;
}
}
}