1

ピボット セクションに dataBinding ListBox があります。

別のピボット セクションには、ListBox の新しい項目を作成するためのフォームがあります。

ListBox に新しい項目を追加するときは、新しい ListBoxItem にアクセスして、TextBox コントロールを見つけて Text 値を変更する必要がありますが、

ListBoxItem lbItem = allItemsListBox.ItemContainerGenerator.ContainerFromIndex(itemIndex) as ListBoxItem;

常に null を返します。

問題は、ListBox が表示されていないように思われるため、新しい ListBoxItem は仮想です。

どうすればそれを解決できますか?

ありがとう。

4

1 に答える 1

1

コントロールを直接変更するのではなく、DataTemplates でデータ バインディングを使用しないのはなぜですか?

例えば:

コード:

// Data binding class
public class Data
{
    // Implement INofifyPropertyChanged
    public string Text { get; set; }
}

// Code to bind it to Pivot

ObservableCollection<Data> list = new ObservableCollection<Data>();
// populate list
Pivot1.ItemsSource = list;

XAML:

<Pivot Name="Pivot1">
    <Pivot.ItemTemplate>
        <DataTemplate>
            <TextBlock Text={Binding Text}" />
        </DataTemplate>
    </Pivot.ItemTemplate>
</Pivot>

特定の TextBlock の Text を変更するには、関連する Data オブジェクトの値をリストから変更するだけです。

于 2012-09-19T17:16:07.590 に答える