На моей странице у меня есть LongListSelector
& DatePicker
, как показано ниже.Cant databind Radiobutton group with LongListSelector
<phone:LongListSelector ItemsSource="{Binding Categories, Mode=TwoWay}"
Name="llsCategories"
ItemTemplate="{StaticResource AllCategories}"/>
<toolkit:DatePicker Name="dpDate" Value="{Binding LastModifiedOn,Mode=TwoWay}"/>
Вот как я определил мой DataTemplate для LongListSelector
. Обратите внимание, GroupName
свойство
<DataTemplate x:Key="AllCategories">
<StackPanel Orientation="Vertical">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions >
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<RadioButton Content="{Binding CategoryName, Mode=TwoWay}"
IsChecked="{Binding IsCategorySelected, Mode=TwoWay}"
GroupName="categoryList"/>
</Grid>
</StackPanel>
</DataTemplate>
Источник данных для LongListSelector Categories
является IList<Category>
присутствует в моей ViewModel, который уже реализует INotifyPropertyChanged
Это, как я привязка.
В конструкторе страницы:
this.DataContext = App.ViewModel
В App.xaml
private static MainViewModel viewModel = null;
public static MainViewModel ViewModel
{
get
{
// Delay creation of the view model until necessary
if (viewModel == null)
viewModel = new MainViewModel();
return viewModel;
}
}
Проблема: Я выбрал одну из категорий (радиокнопок), представленные в моем LongListSelector, а затем, когда я сделанный с выбором даты и времени, радиокнопка, которая отмечена ранее, получает галочку. Зачем ?
EDIT: Адрес sample code. Вам понадобится VS 2012. Запустите проект. Выберите первый или последний переключатель. Затем выберите дату. Обратите внимание, что ранее выбранный переключатель отключен.
Можете ли вы показать код, который назначает DataContext вашей страницы для вашей модели? Также сообщите нам, когда этот код выполняется, то есть в каком методе/событии. –
@AlaaMasoud Обновлен OP по запросу. – NoobDeveloper
Вы говорите о флажке, но я не вижу его в вашем коде. – ChrisF