3
MVVM을 사용하고 있으며 내 viewmodel에 사전에 바인드 된 listview가 있습니다. 내 xaml에서 선택한 항목을 올바르게 선택한 항목을 설정했지만 불행히도 내가하는 일은하지 않습니다. 속성 데이터 유형이 int로 변경된 selectedindex로 변경하면 설정할 수 있습니다. 내 견해가있다.MVVM listview 사전 선택된 항목 문제에
보기 (XAML)
<Grid Width="auto" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Left" Margin="0,1,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="188"></ColumnDefinition>
</Grid.ColumnDefinitions>
<ListView Name="lstNewPatient" HorizontalAlignment="Left" VerticalAlignment="Bottom"
Height="auto" Margin="0,0,0,0" ItemsSource="{Binding Path=TestList}" SelectedItem="{Binding Path=SelectedTestItem}"
FontSize="11" SelectionMode="Single">
<ListView.View>
<GridView>
<GridView.ColumnHeaderContainerStyle>
<Style>
<Setter Property="FrameworkElement.Visibility" Value="Collapsed"/>
</Style>
</GridView.ColumnHeaderContainerStyle>
<GridViewColumn Width="69" DisplayMemberBinding="{Binding Key}"></GridViewColumn>
<GridViewColumn Width="109" DisplayMemberBinding="{Binding Value}"></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</Grid>
뷰 모델
Dictionary<int, string> selectedTestItem= null;
public Dictionary<int, string> SelectedTestItem
{
get
{
return selectedTestItem;
}
set
{
selectedTestItem = value;
OnPropertyChanged("SelectedTestItem");
}
}
private Dictionary<int, string> TestList()
{
var newTestList = new Dictionary<int, string>();
newTestList.Add(1, "Apple");
newTestList.Add(2, "Car");
newTestList.Add(3, "Laptop");
return newPtLevelList;
}
감사해야합니다. 그 트릭을했다. – Calvin
나는 당신의 대답의 타당성에 대해 논쟁하지 않습니다. 그러나 그 이유에 대해 좀 더 깊이 들어가시기 바랍니다 (내 대답이 아닌 내 의견으로) –