Witam, mam problem z ustawieniem ItemsSource dla kontrolki ListView od "strony Xamla", codebehind działa częściowo xd. Przeszukałem msdn, stackoverflow, ale ni cholery nie wiem czemu to nie działa.
W codebehind pomimo ustawienia DisplayMemberPath nic się nie zmieniło w zakresie prezentowanych danych :<
Okienko
<Window <!-- {...} -->
<Window.DataContext>
<local:SViewModel/>
</Window.DataContext>
>
<Grid>
<!-- {...} -->
<ListView x:Name="CB" SelectionChanged="CompletionBrowser_SelectionChanged" Background="{DynamicResource BackgroundBrush}" BorderThickness="0" IsSynchronizedWithCurrentItem="True" DisplayMemberPath="Display" ItemsSource="{Binding Hints}">
<ListView.Resources>
<!-- {...} -->
</ListView.Resources>
</ListView>
<Border Grid.Row="2" Grid.RowSpan="1" Grid.ColumnSpan="1" Background="{DynamicResource BackgroundBrush3}" BorderThickness="0">
<TextBlock x:Name="Description" Focusable="False" Foreground="WhiteSmoke" Text="{Binding Selected.Description, ElementName=CB}"/>
</Border>
</Grid>
</Window>
Codebehind
public partial class UserControl1 : Window
{
SViewModel ViewModel;
public UserControl1()
{
InitializeComponent();
SViewModel = new SViewModel();
DataContext = ViewModel;
}
}
SViewModel
public sealed class SViewModel
{
public readonly ObservableCollection<Hint> Hints;
public SViewModel()
{
Hints = new ObservableCollection<Hint>();
}
}
Hint
public class Hint
{
public readonly string Display;
public readonly string Description;
public readonly string GroupName;
public Hint(string Display, string Description, string GroupName = "")
{
this.Display = Display;
this.Description = Description;
if (GroupName == null)
GroupName = string.Empty;
this.GroupName = GroupName;
}
}
Z góry dzięki.