I'm doing a simple binding of a Combobox in Page:
XAML:
<ComboBox x:Name="Cmb_test" Grid.Column="2" Grid.Row="2" HorizontalAlignment="Left" ItemsSource="{Binding}" />
CODE behind:
private void Page_Loaded(object sender, RoutedEventArgs e)
{
//Binding of label works fine everytime
My_label.Content = dt.Rows[0]["Column1"];
Cmb_test.DataContext = dt.DefaultView;
Cmb_test.SelectedValuePath = dt.Columns[3].ToString();
Cmb_test.DisplayMemberPath = dt.Columns[4].ToString();
//Just a check to see whether DataTable really has changed
Console.WriteLine(dt.Rows.Count.ToString());
}
But whenever my DataTable "dt" get's changed, my Combobox doesn't display Items anymore. I know there were a lot of questions allready asked regarding this issue, but all I could found were problems associating with refreshing during run-time. In my case I close a Page and re-open It when DataTable is changed, but result is empty Combobox.
Code for closing my Page, for addition:
CODE in same Page as Combobox:
private void BtnClose_Click(object sender, RoutedEventArgs e)
{
Cmb_test.ItemsSource = null;
Cmb_test.DataContext = null;
var main_window = Application.Current.MainWindow;
var frame = (main_window as MainWindow).My_Frame;
frame.Content = null;
}
Code in MainWindow:
private void My_Frame_Navigated(object sender, NavigationEventArgs e)
{
if (My_Frame.Content == null)
{
My_Frame.RemoveBackEntry();
}
}
EDIT - another attempt:
XAML:
<Page.Resources>
<CollectionViewSource x:Key="My_source"/>
</Page.Resources>
<ComboBox x:Name="Cmb_test" ItemsSource="{Binding Source={StaticResource My_source}}" DisplayMemberPath="Column1"/>
CODE behind:
private void Page_Loaded(object sender, RoutedEventArgs e)
{
var combo_datasource = new CollectionViewSource();
combo_datasource = (CollectionViewSource)this.FindResource("seznamVrstEvidenc");
combo_datasource.Source = Tabele.dt_Sifrant.DefaultView;
}
What is going on here, how can I fix combobox to show It's Items everytime ?