簡體   English   中英

在ListView中設置SelectedItem之前如何加載ItemsSource?

[英]How to load ItemsSource before setting SelectedItem in ListView?

我有一個包含ListViewMVVM頁面。 我綁定了ItemSourceSelectedValue ,但是第一次它為SelectedValue調用轉換器,然后加載ItemSource

<ListView x:Name="ListViewSurahs"  
              ItemsSource="{Binding MyItems}"
              FlowDirection="LeftToRight"
              Grid.Column="2"
              Grid.Row="4"
              VerticalAlignment="Top"
              HorizontalAlignment="Left"
              HorizontalContentAlignment="Center"
              SelectionMode="Single"
              ScrollViewer.VerticalScrollBarVisibility="Auto"
              DisplayMemberPath="Name"
              SelectedValuePath="ID"
              SelectedValue="{Binding Source={StaticResource CurrentInfo},
                                      Path=Instance.ID,Mode=OneWay}"
              ShowsScrollingPlaceholders="False" />

因此,我丟失了SelectedItem並且沒有任何項目被選中。 我應該怎么做才能首先加載ItemsSource

首先,您可以嘗試在代碼隱藏中鍵入ItemsSource。 為此,您必須在xaml文件中添加UserLoaded屬性。 但是也許我們需要查看您的代碼背后和viewmodel。 無論如何,您應該嘗試將SelectedValue綁定模式OneWay更改為TwoWay

之后,您應該注意自己的裝訂風格。 您必須在viewmodel中完成大部分開發進度,然后您可以使用get-set從xaml代碼背后(.cs)調用viewmodel。 因此,您將擁有一個非常干凈的綁定結構。

這樣,您可以輸入以下內容而不是您的內容,

    SelectedValue="{Binding Model.BlaBla, Mode=TwoWay}"

在這里, 模型是在xaml文件(.cs)的代碼背后定義和調用的。 例如,在您的公開密封局部類中

    public YourViewModelName Model { get; set; }

並在同一文件中公開YourXamlName()

    Model = new YourViewModelName();

這是一個快速的答案,我不確定。 但是你應該試一試。

祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM