0

私は次のxamlを持っています:

<phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Key="OrganisationTemplate">
        <Grid Margin="40,0,0,0">
            <StackPanel>
                <TextBlock Text="{Binding name}"></TextBlock>
            </StackPanel>
        </Grid>
    </DataTemplate>
</phone:PhoneApplicationPage.Resources>

        <phone:PanoramaItem Header="Organisations">
            <ListBox Name="Organisation" ItemTemplate="{StaticResource OrganisationTemplate}" DataContext="{Binding Organisations, Mode=OneWay}" Margin="0,0,0,96"/>
        </phone:PanoramaItem>

そして、バインディング「組織」がリストまたはICollectionまたは何かである必要があるかどうかを知りたいです...または、IEnumerableにすることができます。それは現在機能していないだけです。

class DashboardViewModel
{
    private OrganisationRepository organisationRepository { get; set; }
    public IEnumerable<Organisation> Organisations { get; set; }

    public DashboardViewModel()
    {
        LoadOrganisationSection();
    }

    private async void LoadOrganisationSection()
    {
        organisationRepository = new OrganisationRepository();
        Organisations = await organisationRepository.GetAll();
        OnPropertyChanged("Organisations");
        //LoadBar loadBar = new LoadBar("Logging in");
        //loadBar.ShowLoadBar(this);
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChangedEventHandler tempEvent = PropertyChanged;

        if (tempEvent != null)
        {
            // property changed
            tempEvent(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

編集:://

    public IEnumerable<Organisation> Organisations
    {
        get
        {
            return new Organisation[] { new Organisation { name = "hi" } };
        }
        set
        {
            OnPropertyChanged();
        }
    }

これをやると何か出てくるので、効かないのは引き金です。これを行う方法はありますか?organizationRepository.GetAll() の待機が終了したら.. onchange を実行して更新する必要があります。や

4

1 に答える 1