Borysław
B.
Mgr inżynier
informatyki,
właściciel Matrix
Reliability
Temat: Ustawianie SelectedItem za pomocą MVVM
Cześć, mam niewyobrażalnie ciężki orzech do zgryzienia. Siedziałem nad tym 3 godziny i nie poradziłem sobie. Chcę zrobić coś takiego:myList.SelectedIndex = 2;
Tyle, że nie w code behind, a za pomocą XAML. Czyli, po załadowaniu się pozycji do listy chcę by był zaznaczony trzeci element.
Pod DataContext podłączam VM, przekazując mu listę obiektów. Jednakże ja chcę za pomocą VM ustawić SelectedIndex i zbindować tą informacje dla ListBox-a.
Coś takiego
SelectedItem={Binding SelectedItemNotifyProperty}
Jak to zrobić nie łamiąc wzorca MVVM?
Kod listy jest prosty.
<ListBox x:Name="myList" Margin="0,20,0,0" ItemsSource="{Binding ListItems}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock TextAlignment="Center" Text="{Binding Text}" Height="80">
</TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
VM też jest prosty
public class MainScreenViewModel : NotifyProperty
{
public MainScreenViewModel()
{
this.ListItems = new ObservableCollection<SampleListItem>();
}
public void LoadData()
{
LoadData();
IsDataLoaded = true;
}
public bool IsDataLoaded
{
get;
private set;
}
public ObservableCollection<SampleListItem> ListItems { get; private set; }
public void LoadData()
{
this.ListItems.Add(new SampleListItem() { Text = "Katalog1" });
this.ListItems.Add(new SampleListItem() { Text = "Katalog2" });
}
}