1

私はListViewこのタイプのものを持っています:

<ListView x:Name="LView">
    <ListView.View>
        <GridView x:Name="GView"></GridView>
    </ListView.View>
</ListView>

最初は、自分のにいくつの列があるかわかりGridViewません。また、単一のセルのタイプがわかりません。

実行時に新しい列、特にセルに異なるオブジェクトが含まれる新しい行を追加する可能性が必要です。

ListViewプロパティItemsを持っているので、文字列の単一の列があり、行を追加したい場合は、次のように記述します。

LView.Items.Add("my string");

今、私は新しい列を追加したいと思います:

GView.Columns.Add(new GridViewColumn());

新しい列が追加されましたが、最初の行の2番目のセルに文字列「mystring」が含まれています。なぜですか。この動作は必要ありませんが、新しい空のセルが必要です。

String特に、最初のセルをas 、2番目のセルをasとして新しい行を追加したい場合は、どうすればCheckBoxよいですか?

私は試した:

LView.Items.Add("my second string", new CheckBox());

しかし、明らかに、それは機能しません。

新しいオブジェクトを追加しようとしました:

public class obj
{
    public string MyString{ get; set; }
    public CheckBox MyCBox { get; set; }
}

LView.Items.Add(new obj());

ただし、(名前空間 "+ obj")を含む文字列が表示されるため、機能しません。また、列の数がわからないため、objクラスを最初にどのようにする必要があるかわかりません

問題を解決するために私は何をしなければなりませんか?ありがとう。

4

1 に答える 1

3

データ項目とUI要素を混ぜていると思います

LView.Items.Add("my string");

デフォルトのテンプレートを使用してテキスト要素として表示されます

データ テンプレートを定義しておらず、UI 要素を明示的に追加したい場合は、代わりにこれを試してください。

LView.Items.Add(new TextBlock { Text = "My string"});

ただし、GridView には、明示的に ui 要素ではなく、(データ バインディングの機能と共に) データが入力されると想定されていると思います。列テンプレートは、データの表示方法を定義する必要があります (この場合、チェックボックスまたはテキスト要素)。

例を参照してください http://www.c-sharpcorner.com/uploadfile/mahesh/gridview-in-wpf/

于 2012-09-23T11:04:59.573 に答える