1

我有一个 Pivot 元素,它有一个标题模板和一个带有列表框的 itemtemplate,它也有一个 itemtemplate。标题模板绑定到我通过代码创建的“DOWS”列表。这工作正常。每个 DOW 都有一个实体集 TD,我想将列表框项模板绑定到这个源。一旦我绑定它,删除一个项目会更新 ui 很好,但添加一个项目不会更新 ui。

实体集基于此处的“使用 mvvm 的本地数据库”示例:

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

我研究了几天,找不到任何有用的东西。一些解决方案我找到了将实体集包装在可观察集合中的位置,但这似乎不起作用。另一种方法是使用 BindingLists,但对于 windows phone 7,entitySets 没有“ToBindingList()”。我在 ViewModel 中创建了可以绑定到的可观察集合,但是我无法告诉列表框项模板绑定到哪个集合当它创建时。

有任何想法吗?

如果需要,我可以发布更多代码。

谢谢!!

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