Когда я пытаюсь получить значение из метода для загрузки элементов комбинированного списка, оно всегда является значением по умолчанию
Это сбивает с толку то, что является комбинированным списком ItemsSource
, если Depcombo
- это ComboBox ItemsSource
, Вы передали новый экземпляр списка ItemsSource
при вызове метода GetDepCombo
.
Depcombo = _dep;
Итак, нам нужно установить режим связывания как OneWay
(OneTime по умолчанию), который может ответить на изменение экземпляра объекта.
<ComboBox
Margin="0,120,0,0"
ItemsSource="{x:Bind MainViewModel.Depcombo, Mode=OneWay}"
>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Если EmpItems
- это ComboBox ItemsSource
, и это тип ObservableCollection
. Когда вы звоните LoadDataAsync
, EmpItems очищают элементы, а затем добавляют новые элементы. И эта обработка не изменяет объект экземпляра EmpItems
. он может работать в одноразовом режиме.
<ComboBox Margin="0,120,0,0" ItemsSource="{x:Bind MainViewModel.EmpItems}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<AppBarToggleButton Label="Active" Icon="People"
x:Name="empStatusBtn"
IsChecked="{x:Bind ViewModel.IsStatusBtnChecked, Mode=TwoWay}"
Click="{x:Bind ViewModel.empStautsBtnClicked}"/>
public async void empStautsBtnClicked()
{
await LoadDataAsync(MasterDetailsViewState.Both);
}
Похоже, проблема в том, что представление перезагружается. Есть ли способ обновить sh вид без перезагрузки. При перезагрузке значение
private bool isStatusBtnChecked = true;
public bool IsStatusBtnChecked
{
get { return isStatusBtnChecked; }
set
{
if (isStatusBtnChecked != value)
{
isStatusBtnChecked = value;
OnPropertyChanged("IsStatusBtnChecked");
}
}
}
равно true, но свойство isChecked кнопки равно false;