функция, аналогичная автопосту назад - PullRequest
2 голосов
/ 11 февраля 2011

Привет, мне нужна функция для приложения WPF, аналогичная опции autopostback в asp.net.что происходит, у меня есть форма со списком, заполненным XML-файлом.поэтому, как только пользователь выберет «Другие» в качестве опции, для них станут видны текстовое поле и кнопка.так что-нибудь не так с моим кодом?Я использовал метод сравнения строк для реализации функции, но, похоже, она не работает.

        private void comboBox1_SelectedIndexChanged(System.Object sender, System.EventArgs e)

    {
        if (comboBox1.SelectedValue.ToString() == "Others")
        {
            BuilderemailTextBox.Visibility = Visibility.Visible;
            BuilderupdateButton.Visibility= Visibility.Visible;
        }
        else
        {
            BuilderemailTextBox.Visibility = Visibility.Hidden;
            BuilderupdateButton.Visibility = Visibility.Hidden;
        }
    }

Я также попробовал следующее, внеся изменения и в SelectedIndex.

        private void comboBox1_SelectedIndexChanged(System.Object sender, System.EventArgs e)

{
    if (comboBox1.SelectedIndex.ToString() == "Others")
    {
        BuilderemailTextBox.Visibility = Visibility.Visible;
        BuilderupdateButton.Visibility= Visibility.Visible;
    }
    else
    {
        BuilderemailTextBox.Visibility = Visibility.Hidden;
        BuilderupdateButton.Visibility = Visibility.Hidden;
    }
}

edit 1: Мой XAML-файл:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="309" Width="672">
    <Grid>
        <Button Height="23" Name="BuildButton" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="75" Click="BuildButton_Click">Build</Button>
        <ComboBox Height="23" HorizontalAlignment="Left" Margin="12,63,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" SelectionChanged="comboBox1_SelectedIndexChanged" />
        <CheckBox Height="16" HorizontalAlignment="Left" Margin="66,0,0,140" Name="ExecbuildstartingmailCheckBox" VerticalAlignment="Bottom" Width="153">Exec Build Starting Mail</CheckBox>
        <ComboBox Height="23" Margin="0,63,173,0" Name="comboBox2" VerticalAlignment="Top" HorizontalAlignment="Right" Width="120" />
        <Button Height="23" Margin="270,63,0,0" Name="BuilderupdateButton" VerticalAlignment="Top" HorizontalAlignment="Left" Width="51" Visibility="Hidden">Button</Button>
        <Button Height="23" Margin="0,63,73,0" Name="button2" VerticalAlignment="Top" HorizontalAlignment="Right" Width="74">Button</Button>
        <TextBox Height="23" HorizontalAlignment="Left" Margin="144,63,0,0" Name="BuilderemailTextBox" VerticalAlignment="Top" Width="120" Visibility="Hidden" />
    </Grid>
</Window>

edit2 мой xml-файл:

<?xml version="1.0" encoding="utf-8"?>
<email>
  <builderemail>
    <builder>
      <value>builder@example.com</value>
    </builder>
    <builder>
      <value>Others</value>
    </builder>
  </builderemail>
  <manageremail>
    <manager>
      <value>manager@example.com</value>
    </manager>
    <manager>
      <value>Others</value>
    </manager>
  </manageremail>
</email>

1 Ответ

0 голосов
/ 12 февраля 2011

В зависимости от вашего XML вы можете взять SelectedItem, привести его и получить доступ к его свойствам.Если у вашего предмета есть XmlElement с именем value, который вы хотите проверить на «Другое», вы можете попробовать это:

(comboBox1.SelectedItem as XmlElement).GetElementsByTagName("value")[0].InnerText == "Other"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...