###Gtk3アプリGtk.ListStoreを使ってコントロールを更新する
Gtk.ListStoreを使いコントロールの更新を行います。
不特定の関数を作るのではなく、ListStoreのイベントハンドリングでまとめて更新をするとわかりやすくなります。
private Gtk.ListStore listStore1 = new Gtk.ListStore (typeof (testModel));
private void on_btn1_clicked(object sender , EventArgs e){
testModel testModel1 = new testModel();
testModel1.Name = "タイトル1";
testModel1.Description = "詳細1";
listStore1.Clear();
listStore1.AppendValues (testModel1);
}
private void _mkBining()
{
listStore1.RowChanged += delegate(object o, RowChangedArgs args)
{
ListStore testStore = ((ListStore)o);
TreeIter iter;
if (testStore.GetIter(out iter, args.Path))
{
testModel testModel1 = (testModel)testStore.GetValue(iter, 0);
Console.WriteLine("testModel1" + testModel1.icon_id );
titleEntry.Text = testModel1.Name;
descriptionEntry.Text = testModel1.Description;
}
};
}
ListStoreのRowChangedメソッドを使い、ListStoreが更新されたら他のコントロールを更新するようにします。
listStore1.RowChanged += delegate(object o, RowChangedArgs args)
{
ListStore testStore = ((ListStore)o);
TreeIter iter;
if (testStore.GetIter(out iter, args.Path))
{
testModel testModel1 = (testModel)testStore.GetValue(iter, 0);
}
};