Я заселение мой выпадающий с TimeZone информацию, используя ниже:Использование привязки данных, отображение времени в текстовое поле на основе выбранного TimeZone в ComboBox
MainWindow.xaml.cs
private void Window_Loaded(object sender, RoutedEventArgs e)
{
ReadOnlyCollection<TimeZoneInfo> TimeZones = TimeZoneInfo.GetSystemTimeZones();
this.DataContext = TimeZones;
cmb_TZ.SelectedIndex = 1;
}
внизу от XAML:
<ComboBox x:Name="cmb_TZ" ItemsSource="{Binding}" Grid.Row="0" Grid.Column="2" Height="28.5" Margin="10,65.375,30.945,0" VerticalAlignment="Top" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin" SelectionChanged="ComboBox_Selection"/>
Я также смог показать соответствующее значение в текстовом поле , используя этот код:
private void ComboBox_Selection(object Sender, SelectionChangedEventArgs e)
{
var cmbBox = Sender as ComboBox;
DateTime currTime = DateTime.UtcNow;
TimeZoneInfo tst = (TimeZoneInfo)cmbBox.SelectedItem;
txt_Time.Text = TimeZoneInfo.ConvertTime(currTime, TimeZoneInfo.Utc, tst).ToString("HH:mm:ss dd MMM yy");
}
где txt_Time это мое текстовое поле. Код XAML для него является:
<TextBox x:Name="txt_Time" Grid.Row="0" Grid.Column="1" Height="28.5" Margin="26.148,65.375,28.13,0" TextWrapping="Wrap" VerticalAlignment="Top" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
Мой вопрос:
Есть ли способ сделать это с помощью привязки данных? Я могу сделать это, используя прямолинейный метод, показанный выше. Но мне было интересно, можно ли сделать это вычисление с помощью привязки данных?
Я новичок в C#/WPF, и я попытался создать простой класс, а также класс, используя INotifyPropertyChanged и ссылающийся на него в конструкторе MainWindow, но я не мог получить даже выпадающий заселена.
Я действительно хочу понять и использовать магию привязки данных C#.
Вы хотите связать все значения в Combobox справа? – Balaji
В combobox будет отображаться список часовых поясов, и я хочу показать соответствующее время в текстовом поле в зависимости от выбранного вами временного часового пояса. –
«Я действительно хочу понять и использовать магию привязки данных C#». Если вы действительно этого хотите, вы должны пойти на решение без каких-либо обработчиков событий в коде, как показано в других ответах. – Clemens