我在WPF中的MVVM/PRISM應用程序中可能包含一對多元素的列表視圖。當列表視圖只包含1個元素,並選擇它時,即使將SelectedIndedx值設置爲-1,我也無法重新選擇它。更糟糕的是,如果我使用不同的單個元素更新listview,我不能選擇那個。當它是列表視圖中唯一的項目時,我可以實現選擇項目的唯一方法是讓應用程序顯示多個項目並選擇除第一個以外的其他項目。然後,當我讓應用程序顯示一個包含單個項目的列表視圖時,我可以再次選擇它 - 但只有一次。無法在列表視圖中重新選擇單個項目
在那些我無法在列表視圖中選擇單個項目的情況下,服務例程從不觸發。
我試着實現一個XAML建議,我在這裏使用「Listview.Container.Style」和IsSelected屬性,但沒有奏效。
我的列表視圖是相當簡單:
<ListView Name="lstEditInstance"
Grid.Row="5"
ItemsSource="{Binding Path=InstanceList,Mode=TwoWay}"
Width="488"
FontFamily="Arial" FontSize="11"
HorizontalAlignment="Left" VerticalAlignment="Stretch"
Margin="10,96,0,28"
SelectedIndex="{Binding Path=InstanceSelectedIndex}">
</ListView>
的服務程序是:
private void OnInstanceSelectedIndexChanged()
{
// Handle case where user hits Enter without making a selection:
if (_instanceIndex == -1) return;
// Get the instance record for the row the user clicked on as a
// ResourceInstance class named "InstanceRecord".
InstanceRecord = _instanceList[_instanceIndex];
_instanceNumber = InstanceRecord.Instance;
FormInstName = InstanceRecord.InstName;
FormInstEnabled = InstanceRecord.Enabled;
FormInstState = InstanceRecord.InitialState;
FormInstIPAddress = InstanceRecord.IPAddress;
FormInstPort = InstanceRecord.Port.ToString();
FormInstSelectedURL = InstanceRecord.UrlHandler;
} // End of "OnResourceSelectedIndexChanged" method.
「InstanceList」 是一個觀察的集合。
我很感激一些建議。預先感謝您的幫助。
要user3042207:在服務程序是在視圖模型,以及所選擇的指數是一個屬性我道歉,不使這一明確。 –