У меня есть UserControl, определенный Xaml и код позади. Он должен обновляться по мере изменения модели, на которой он основан.
Я создал каждый экземпляр этих элементов управления в коде и установил привязки к некоторому объекту _interestingSystem
.
var newViewInstance = new BroadcastCell
{
HeartbeatStatus = Heartbeat.Status.NotRx,
BindingContext = _interestingSystem,
};
broadcastCell.SetBinding(BroadcastCell.HeartbeatProperty, "HeartbeatStatus");
StatkStack.Children.Add(broadcastCell);
Эти привязки работают, и я могу видеть, что программный код реагирует на изменения модели очень хорошо.
Теперь я хочу связать свое представление с программным кодом через некоторое времямодификация и настройка.
XAML
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="56" />
<RowDefinition Height="20" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="65" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Text="{Binding Title, FallbackValue=TestTitle, Mode=OneWay}" Grid.Column="1" />
<Label Text="{Binding SecondaryLine, FallbackValue=Test2nd}" Grid.Column="1" Grid.Row="1" />
</Grid>
Кодовый код
public Heartbeat.Status CurrentStatus;
static void OnHeartbeatStatusChanged(BindableObject sender, object oldValue, object newValue)
{
var thisInstance = (BroadcastCell)sender;
var newStatus = (Heartbeat.Status)newValue;
thisInstance.CurrentStatus= newStatus;
}
private void UpdateAndModifyResult()
{
SecondaryLine = $"{DateTime.Now} {CurrentStatus} @ {AnotherStatus}";
}
public String SecondaryLine
{
get { return _secondaryLine; }
set
{
_secondaryLine = value;
OnPropertyChanged();
}
}
Могу ли я установитькак я пытаюсь связать Xaml с выделенным кодом, а код с другим объектом?
Или мне нужно жестко закодировать имя свойства xaml в выделенный код, чтобы обновить их «вручную»