1

ヘッダー テンプレートを持つ Pivot 要素と、itemtemplate を持つリスト ボックスを持つ itemtemplate があります。ヘッダー テンプレートは、コードで作成した「DOWS」のリストにバインドされています。これはうまくいきます。各 DOW にはエンティティセットの TD があり、リストボックス itemtemplate をこのソースにバインドしたいと考えています。バインドしたら、アイテムを削除するとUIが正常に更新されますが、アイテムを追加してもUIは更新されません。

エンティティ セットは、次の「mvvm を使用したローカル データベース」の例に基づいています。

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh286405(v=vs.105).aspx

数日間調査しましたが、役立つものが見つかりません。エンティティセットを監視可能なコレクションにラップする場所を見つけたいくつかの解決策が、うまくいかなかったようです。もう 1 つは BindingLists を使用することでしたが、entitySets には Windows Phone 7 の "ToBindingList()" がありません。ViewModel にバインドできる観察可能なコレクションを作成しましたが、リストボックス itemtemplate にどのコレクションをバインドするかを伝える方法がありません。作成されたとき。

何か案は?

必要に応じて、さらにコードを投稿できます。

ありがとう!!

ViewModel の Observablen コレクションの例

private ObservableCollection<TDItem> _twoDaysAgoItems;
    public ObservableCollection<TDItem> TwoDaysAgoItems
    {
        get { return _twoDaysAgoItems; }
        set
        {

            _twoDaysAgoItems = value;
            NotifyPropertyChanged("TwoDaysAgoItems");
        }
    }

    private ObservableCollection<TDItem> _yesterdayItems;
    public ObservableCollection<TDItem> YesterdayItems
    {
        get { return _yesterdayItems; }
        set
        {
            _yesterdayItems = value;
            NotifyPropertyChanged("YesterdayItems");
        }
    }

    private ObservableCollection<TDItem> _todayItems;
    public ObservableCollection<TDItem> TodayItems
    {
        get { return _todayItems; }
        set
        {

            _todayItems = value;
            NotifyPropertyChanged("TodayItems");
        }
    }

エンティティセット

    private EntitySet<TDItem> _tds;
    [Association(Storage = "_ts", OtherKey = "_dowId", ThisKey = "Id")]
    public EntitySet<TDItem> TDs 
    {
        get { return this._tds; 
            }

        set { 
           NotifyPropertyChanging("TDs");
            this._tds.Assign(value);
           NotifyPropertyChanged("TDs");
            }
    }

    public DOW()
    {
        _tds = new EntitySet<TDItem>(
            new Action<TDItem>(this.attach_TD), 
            new Action<TDItem>(this.detach_TD)
            );
    }

ピボット

<controls:Pivot x:Name="TDPivotDisplay" SelectedIndex="2" Margin="0,-10,0,0"            Grid.Row="0" Title="TD" Foreground="White" FontWeight="light" VerticalAlignment="Top"   FontSize="29.333" Style="{StaticResource PivotStyle1}" FontFamily="{StaticResource Akzidenz    Grotesk}">
        <controls:Pivot.HeaderTemplate>
            <DataTemplate>
                <StackPanel>
                    <TextBlock x:Name="DOW" Foreground="{Binding Colour}" FontSize="110" FontFamily="{StaticResource Akzidenz Grotesk}" Text="{Binding Header}"/>
                    <TextBlock x:Name = "FullDate" Foreground="{Binding Colour}" FontWeight="light" FontSize="30" FontFamily="{StaticResource Akzidenz Grotesk}"  HorizontalAlignment="center" Text="{Binding Date}"/>
                </StackPanel>
            </DataTemplate>
        </controls:Pivot.HeaderTemplate>

        <controls:Pivot.ItemTemplate>
            <DataTemplate>
                <Grid Height="421">
                    <ListBox ItemsSource = "{Binding TDs}" ItemTemplate = "{StaticResource ListboxItemTemp}"  x:Name ="TDLists"  Margin="12, 0, 12, 0" Width="440"/>
                </Grid>
                </DataTemplate>
        </controls:Pivot.ItemTemplate>

    </controls:Pivot>
4

0 に答える 0