0

私はWPFを実装していますDataGrid(WPFは非常に新しい)。ComboBoxColumnstaticresourcesを使用してバインドする方法を示すチュートリアルに従いました。ただし、データグリッド内のいくつかの列のデータバインディングは、実行時まで認識されません。

このため、staticresourceでそれらをバインドすることはできません。ComboBoxColumnのをデータバインドする他の方法はありますDataGridか?ASP.NETでは、これを実行して列のコンテンツを動的に作成できるrowdataboundコードがあることを知っています。しかし、WPFでは、すべてがリソースを介して行われているように見えます。

で動的リソースを使用してデータバインドするにはどうすればよいですDataGridか?

ありがとう!

4

1 に答える 1

0

バインディングを動的に設定できます。このようなもの (このコードはグリッド ビュー列を作成し、動的バインディングを割り当てます)

       private void AddColumn(GridView view, Field fld)
        {
            GridViewColumn col = new GridViewColumn();
            col.Header = fld.Label;
            Binding bnd = new Binding();
            switch (fld.FieldType)
            {
                case FieldType.DateTime:
                bnd.Converter = new DateTimeToDateStringConverter();
                break;
// or some other converters
            }
            bnd.Path = new PropertyPath(string.Format("Fields[{0}]",
    _table._fields.IndexOf(fld)));  // the string matches what you would use in XAML
            col.DisplayMemberBinding = bnd;
            view.Columns.Add(col);
        }
于 2009-07-22T18:40:26.267 に答える