#c# #data-binding #windows-phone-7 #checkbox
#c# #привязка данных #windows-phone-7 #флажок
Вопрос:
Привет, и спасибо, что посмотрели.
На моей главной странице есть следующее.xaml
<TextBlock x:Name="ItemName1" Text="{Binding EventName, Mode=TwoWay}" Style="{StaticResource PhoneTextNormalStyle}" />
<CheckBox Margin="0,0,0,0" x:Name="Checkbox1" IsChecked="{Binding isCheckboxChecked, Mode=TwoWay}" Checked="EditData_Click"/>
Я могу управлять значением флажка через привязку без каких-либо проблем. Как я могу сделать так, чтобы проверяемый обработчик ‘EditData_Click’ мог распознавать значение соответствующего eventName и соответствующим образом запускать какой-либо другой путь к коду. Я имею в виду вариант переключения, что-то вроде:
switch (EventName_string)
{
case "Dogs": // do something
break;
case "Cats": // do something else
}
Ответ №1:
сделайте это в вашей модели представления следующим образом:
MyViewModel : BindableObject // or whatever your base class that implement INotifyPropertyChanged is
{
private string eventName;
public string EventName
{
get{ return eventName; }
set
{
if(value != eventName)
{
eventName = value;
FirePropertyChanged(value, "EventName");
}
}
}
private bool checkBoxIsChecked;
public bool CheckBoxIsCheck
{
get{ return eventName; }
set
{
if(value != eventName)
{
eventName = value;
FirePropertyChanged(value, "CheckBoxIsCheck");
DoExtraProcessing();
}
}
}
private void DoExtraProcessing()
{
switch (EventName)
{
case "Dogs": // do something
break;
case "Cats": // do something else
break;
}
}
}
Ответ №2:
В MainPage.xaml вы можете включить любой ItemName1.Текст или имя события.
Комментарии:
1. Я пытаюсь сделать это в MainPage.xaml.cs. С обоими этими предложениями я получаю сообщение об ошибке «… не существует в текущем контексте»