Как я могу перевести selected rows
с Treeview
на другой Treeview
, когда я нажимаю Button
?
Я пытался создать ListStore
с выбором treeview1
и передам treeview2
как TreeModel
, но у меня ничего не получилось.
ОБНОВЛЕНИЕ: Я нашел способ, используя OnTreeservicesRowActivated
OnTreeservicesRowActivation для события (все еще можно сделать с помощью кнопки) и код ниже.Он «смешивает» строки, если я нажимаю слишком быстро, но это немного раздражает.Спасибо за ответы
using System;
using Gtk;
using MySql.Data.MySqlClient;
namespace Proyect
{
public partial class Window : Gtk.Window
{
public Window() :
base(Gtk.WindowType.Toplevel)
{
this.Build();
//Adds columns to TreeViews
CreateTreeView(treeservices,tree2);
treeservices.Selection.Mode = SelectionMode.Single;
}
//List to populate tree2.
ListStore tree2list = new ListStore(typeof(string), typeof(string), typeof(string));
//Class for validating entry's and misc.
Validation val = new Validation();
//MySql connection
MySqlConnection c = new MySqlConnection(//connectionstring)
MySqlDataReader dr;
MySqlCommand cmd;
//CellRendererText for treeservices.
CellRendererText cellserv1 = new CellRendererText();
CellRendererText cellserv2 = new CellRendererText();
CellRendererText cellserv3 = new CellRendererText();
void CreateTreeView(TreeView treeservices, TreeView tree2 )
{
treeservices.AppendColumn("Code", cellserv1, "text", 0);
treeservices.AppendColumn("Name", cellserv2, "text", 1);
treeservices.AppendColumn("Price", cellserv3, "text", 2);
treeservices.Model = Services();
tree2.AppendColumn("Code", new CellRendererText(), "text", 0);
tree2.AppendColumn("Name", new CellRendererText(), "text", 1);
tree2.AppendColumn("Price", new CellRendererText(), "text", 2);
}
ListStore Services()
{
//Returns a ListStore from local MySql Database
}
//Adds a service to tree2 when a row is double clicked
protected void OnTreeservicesRowActivated(object o, RowActivatedArgs args)
{
tree2list.AppendValues(cellserv1.Text, cellserv2.Text, cellserv3.Text);
tree2.Model = tree2list;
}
}