Рейтинг:
10
OriginalGriff
Попробуйте использовать BindingList:
class MyClass
{
public string Str { get; set; }
public int I { get; set; }
}
BindingList<MyClass> myBindingList = new BindingList<MyClass>();
private void button1_Click(object sender, EventArgs e)
{
myBindingList.Add(new MyClass() { Str = "s1", I = 100 });
myBindingList.Add(new MyClass() { Str = "s2", I = 101 });
myBindingList.Add(new MyClass() { Str = "s3", I = 102 });
myBindingList.Add(new MyClass() { Str = "s4", I = 103 });
myBindingList.Add(new MyClass() { Str = "s5", I = 104 });
MyDataGridView.DataSource = myBindingList;
}
private void button2_Click(object sender, EventArgs e)
{
myBindingList.Add(new MyClass() { Str = "sX", I = 666 });
}
Каждый раз, когда вы нажимаете кнопку Button2, строка будет добавлена в datagridview.
ilostmyid2
спасибо. есть ли какой-нибудь другой способ, кроме использования BindingList? действительно, источник данных исходит от веб-сервиса, размещенного на linux. не могу заставить его вернуть список привязок.
OriginalGriff
Что он возвращает? Веб - служба обычно возвращает либо XML, либо JSON, и вы можете обрабатывать их во что угодно!
Вы можете использовать BindingSource в качестве посредника (хотя мне это и не нужно) или любую коллекцию с реализацией IBindingList напрямую.
ilostmyid2
мы программируем на C# winforms, доступ к веб-сервисам осуществляется через NuSoap в Linux. возвращаемое значение веб-сервиса представляет собой простую структуру.
OriginalGriff
Итак, ваш веб - сервис возвращает SOAP-сообщение-если это структура одного элемента, то в чем проблема с использованием BindingList в качестве источника данных? Вы, вероятно, используете коллекцию какой-то формы в настоящее время, или вы добавляете их непосредственно во внутреннюю коллекцию вашего элемента управления?
ilostmyid2
нет, это массив, который возвращается, и я не изменяю его и не заполняю другую коллекцию или массив на его основе. я просто использую его, когда он возвращается. Я попробую BindingList для этой цели. спасибо. Я мало что знаю об этом, но надеюсь, что добьюсь успеха.