Прежде всего, я прошу прощения, если это звучит глупо, но я очень новичок в WPF.Я делаю таймер, и я хочу изменить метку для отображения оставшегося времени.Я пытался изменить содержимое напрямую и привязав данные к свойству.Когда я делаю первое, программа просто падает;Что касается последнего, я не очень понимаю, как это работает, я огляделся по сторонам, и все, что я мог сделать, это взять некоторые подсказки из фрагментов кода в Интернете, но это не работает, и, поскольку я не знаю, что я 'Я делаю, я тоже не знаю, где я иду не так.
Код: я помещаю много вещей в класс MainWindow, это не очень хороший код, но он достаточно хорош для моих целей.Когда я попытался изменить содержимое напрямую, я сделал это, установив делегат, вызываемый моим классом таймера, когда вызывается это:
private void updateTimerLabel()
{
lblTimer.Content = TimeToGo;
}
, где TimeToGo - это следующее свойство:
public String TimeToGo
{
get { return task.TimeToGo.Hours + ":" +
task.TimeToGo.Minutes + ":" + task.TimeToGo.Seconds; }
}
Что касается попытки привязки, я установил следующее свойство зависимости:
public static readonly DependencyProperty TimeToGoProperty = DependencyProperty.Register(
"TimeToGo", typeof(String), typeof(MainWindow));
и сделал это в файле XAML:
<Window x:Class="ToDoTimer.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="ToDoTimer" Height="210" Width="348"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Grid Width="326" Height="180">
<Label Content="{Binding TimeToGoProperty}" Height="63" HorizontalAlignment="Left" Margin="12,12,0,104" Name="lblTimer" VerticalAlignment="Center" FontSize="40" Width="218" FontFamily="Courier New" VerticalContentAlignment="Center" />
</Grid>
</Window>