我在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:在服务程序是在视图模型,以及所选择的指数是一个属性我道歉,不使这一明确。 –