1

私は最近この質問を始めました。提案されたアプローチは、を使用することでしたDataRepeater

リピータをバインドする方法について多くの例を見てきましたが、それらはすべて ASP 用であり、Windows フォーム アプリケーション用ではありませんでした。

LabelPictureBoxおよびコンポーネントをテンプレートに追加しましたが、 myを myButtonに正常にバインドできませんでした。IList<SomeObject>DataRepeater

これらのコンポーネントにリストからの情報を入力したいと思います。

WinForm アプリケーションでaIList<SomeObject>を aにバインドする方法は?DatarRepeater

4

1 に答える 1

1

ついに稼働しました!今後の参考のために、これは私が使用したものです:

最初にこのメソッドを呼び出して、次を使用して手動バインディングを初期化しますBindingSource

private BindingSource bindingSource ;
private void InitUserListArea()
{
    _bindingSource = new BindingSource();
    _bindingSource.DataSource = tempUsers;
    _labelUserListRoleValue.DataBindings.Add("Text", _bindingSource, "Role");
    _labelUserListNameValue.DataBindings.Add("Text", _bindingSource, "Name");
    _labelUserListLastAccessValue.DataBindings.Add("Text", _bindingSource, "LastAccess");
    _dataRepeaterUserList.DataSource = _bindingSource;
}

次に、(私の場合は Web サービスから) データを取得し、リストにデータを入力します。リストが入力された後、または変更が発生した場合:

private void RefreshDataRepeater()
{
    if (_dataRepeaterUserList.InvokeRequired)
    {
        _dataRepeaterUserList.Invoke((Action)(() => { RefreshDataRepeater(); }));
        return;
    }

    _bindingSource.DataSource = null;
    _bindingSource.DataSource = tempUsers;
    _dataRepeaterUserList.DataSource = null;
    _dataRepeaterUserList.DataSource = _bindingSource;
    _dataRepeaterUserList.Refresh();
}
于 2013-03-13T16:41:12.230 に答える