如何访问itemtemplate生成的列表框控件中的控件

时间:2016-05-30 17:49:44

标签: wpf vb.net

我有一个列表框和一个像这样定义的dataTemplate:

function RegisterMessage($ms_data = array()) {
    global $wo, $sqlConnect;
    if ($wo['loggedin'] == false) {
        return false;
    }
    if (empty($ms_data)) {
        return false;
    }
    if (empty($ms_data['text']) || !isset($ms_data['text']) || strlen($ms_data['text']) < 0) {
        if (empty($ms_data['media']) || !isset($ms_data['media']) || strlen($ms_data['media']) < 0) {
            return false;
        }
    }

    if (isset($ms_data['text'])) {
    switch ($ms_data['text']]) {
        case '1':
            echo "one";
            break;
        case '2':
            echo "two";
            break;
        case '3':
            echo "three";
            break;
        }
    }

    $fields = '`' . implode('`, `', array_keys($ms_data)) . '`';
    $data   = '\'' . implode('\', \'', $ms_data) . '\'';
    $query  = mysqli_query($sqlConnect, " INSERT INTO " . T_MESSAGES . " ({$fields}) VALUES ({$data})");
    if ($query) {
        $message_id = mysqli_insert_id($sqlConnect);
        return $message_id;
    } else {
        return false;
    }
}

我使用linq查询填充列表框:

    <Window.Resources>
    <DataTemplate x:Key="propertyTemplate">
        <StackPanel Margin="8" Orientation="Horizontal">
            <CheckBox Name="Chosen"/>
            <TextBlock Text="{Binding Path=MAP}" Margin="10,0,0,0"/>
        </StackPanel>
    </DataTemplate>
   </Window.Resources>
        <ListBox x:Name="listBox" HorizontalAlignment="Left" Height="100"     Margin="388,203,0,0" VerticalAlignment="Top" Width="522"
             ItemsSource="{Binding}"
             ItemTemplate="{StaticResource propertyTemplate}"/>

我想检查并设置列表框中每个项目的“选择”复选框的值。我有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

不要这样做,将IsChecked绑定到项目类的属性,然后遍历源列表。