0

XAML/WPF は初めてで、この奇妙な問題に遭遇しました:

DataSource を設定するリスト ビューがあります。DataSource は、「CatalogPartRows」の配列リストです。コードで列を作成します。次に、セル テンプレートを設定します (一部の列にはコンボ ボックスとチェック ボックスが含まれています)。ここでの問題は、セルに設定する必要がある文字列を取得する「CatalogPartRow」クラスの関数を呼び出す必要があることです。

これが私が使用しようとしているコードです:

            // THIS DOES NOT WORK
            //
            ObjectDataProvider ODP = new ObjectDataProvider();
            ODP.MethodName = "PropertyValueAsString";
            ODP.MethodParameters.Add(PropertyName);
            ODP.ObjectType = typeof(CatalogPartRow);

            Binding DataBindingText = new Binding();
            DataBindingText.Source = ODP;

            // THIS WORKS
            //
            //String BindingPathText = /*NOXLATE*/"PropertyValues[" + CPR.IndexOf(PropertyName) + /*NOXLATE*/"]";
            //Binding DataBindingText = new Binding(BindingPathText);

            FrameworkElementFactory TextBlockElement = new FrameworkElementFactory(typeof(TextBlock));
            TextBlockElement.SetBinding(TextBlock.TextProperty, DataBindingText);

            FrameworkElementFactory PropertyColumnElement = new FrameworkElementFactory(typeof(Grid));
            PropertyColumnElement.AppendChild(TextBlockElement);

            DataTemplate DT = new DataTemplate();
            DT.VisualTree = PropertyColumnElement;

            GVC.CellTemplate = DT;

私のアプローチは正しいですか?

CPR = CatalogPartRow

GVC = GridViewColumn

ありがとう、ラージ。

4

1 に答える 1

0

メソッドをプロパティでラップすることは機能しないため(パラメーターが必要なため)、最良の方法はおそらく値コンバーターを作成することです。列のバインディングとして使用できPropertyName、コンバーターでそれをメソッドに渡して、メソッドの値を返すことができます。

于 2009-03-21T23:38:35.690 に答える