#c# #xml #xaml
#c# #xml #xaml
Вопрос:
C#:
XDocument xdoc = XDocument.Load("http://quizgyan.site40.net/Questions3.xml");
var data = from query in xdoc.Descendants("question")
select new pq3(
(string)query.Element("qno"),
(string)query.Element("que"),
(string)query.Element("optiona"),
(string)query.Element("optionb"),
(string)query.Element("optionc"),
(string)query.Element("optiond"),
(string)query.Element("correct"));
listView.ItemsSource = data;
XAML:
<ListView x:Name="listView" ItemsSource="{Binding}" Margin="46,0,44,95" Background="{x:Null}" Foreground="#FFF9F6F6">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Margin="10" >
<StackPanel Orientation="Horizontal">
<TextBlock HorizontalAlignment="Left" Margin="46,36,0,0" TextWrapping="Wrap" Text="{Binding qNO}" VerticalAlignment="Top"/>
<TextBlock HorizontalAlignment="Left" Margin="46,36,0,0" TextWrapping="Wrap" Text="{Binding Que}" VerticalAlignment="Top"/>
</StackPanel>
<StackPanel x:Name="SP1" Orientation="Horizontal">
<RadioButton x:Name="RadioButton1" Content="{Binding opA}" Margin="46, 40,0, 0"/>
<RadioButton x:Name="RadioButton2" Content="{Binding opB}" Margin="46, 40,0, 0"/>
<RadioButton x:Name="RadioButton3" Content="{Binding opC}" Margin="46, 40,0, 0"/>
<RadioButton x:Name="RadioButton4" Content="{Binding opD}" Margin="46, 40,0, 0"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Комментарии:
1. Вы хотите увидеть эту информацию, как только они ее нажмут? Или когда пользователь закончил, и они сохраняют их все вместе?
2. это после сохранения их всех вместе. По сути, я создаю приложение для викторины, и вопросы хранятся в XML-файле, а содержимое переключателей также извлекается из XML-файла. Поэтому, как только пользователь отметит все ответы, мне нужно проверить, какие из них правильные.
Ответ №1:
Вы можете добавить свойство в свой класс pq3:
public bool IsChecked { get; set; }
Затем привяжитесь к этому свойству в пользовательском интерфейсе…
<RadioButton x:Name="RadioButton1" IsChecked="{Binding IsChecked}" Content="{Binding opA}" Margin="46, 40,0, 0"/>
И как только они отправят форму (при условии, что у вас настроено событие нажатия кнопки), все, что вам нужно сделать, это взглянуть на ItemSource, и все готово:
foreach(var item in (IEnumerable<pq3>)listView.ItemsSource)
{
var isThisOneChecked = item.IsChecked;
}