Getting value from a control inside DataTemplate windows phone 7

你离开我真会死。 提交于 2019-12-13 04:33:51

问题


Iam working on dataTemplate in windows phone 7. I had customised Listbox with data template. now i need to get the values from the customised listbox. Please check the code is below.

     <phone:PhoneApplicationPage.Resources>
    <Style x:Key="Image_List" TargetType="ListBox">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListBox">
                    <Grid>
                        <Rectangle Fill="#FF030403" RadiusY="10" RadiusX="10"    Stroke="#1BA1E2" StrokeThickness="2"/>
                        <ScrollViewer x:Name="ScrollViewer">
                            <ItemsPresenter Height="Auto"/>
                        </ScrollViewer>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
 </phone:PhoneApplicationPage.Resources>
    <ListBox BorderBrush="#1BA1E2" Name="Image_Listbox" Margin="5,53,6,6" Style="{StaticResource Image_List}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Border CornerRadius="5" BorderBrush="#1BA1E2" BorderThickness="1" Margin="3,1,0,0" Height="69" Width="445">
                        <StackPanel Margin="0,0,0,0" Background="Transparent"  Orientation="Horizontal" Height="69" Width="400">
                            <CheckBox Name="Images_Check" Margin="0,0,0,0" Content="" Height="67"  HorizontalAlignment="Left"/>
                            <TextBlock TextAlignment="Left" FlowDirection="LeftToRight" Width="Auto"  FontSize="22" Text="{Binding UBindData}" Height="40" />
                        </StackPanel>
                    </Border>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

Iam getting the UI_Template correctly.the user will check the required Items in the checkbox provided. now i need to get the checked items in my code. can anybody help me out of this? How to get the checked Items and Itemvalue by the user.

Thanks in advance.


回答1:


I had got solution after a day war.Here it goes.I got solution from nokia developer site. you can get whether checkbox inside datatemplate is checked and its corresponding Textblock value.

 //Variables to store the count of checked Checkboxes and their data
    public string option_selected = "";
    public int check_count = 0;

    //SearchElement populates above variables for checkboxes in specified "targeted_control"
    public void SearchElement(DependencyObject targeted_control)
    {
        var count = VisualTreeHelper.GetChildrenCount(targeted_control);   // targeted_control is the listbox
        if (count > 0)
        {
            for (int i = 0; i < count; i++)
            {
                var child = VisualTreeHelper.GetChild(targeted_control, i);
                if (child is CheckBox) // specific/child control 
                {
                    CheckBox targeted_element = (CheckBox)child;
                    if (targeted_element.IsChecked == true)
                    {
                        if (targeted_element.Tag!= null)
                        {
                            // get the value associated with the "checked" checkbox  
                            option_selected = targeted_element.Tag.ToString();
                        }
                        // count the number of "Checked" checkboxes
                        //check_count = check_count + 1;
                        return;
                    }
                }
                else
                {
                    SearchElement(child);
                }
            }
        }
        else
        {
            return;
        }
    }


来源:https://stackoverflow.com/questions/18404559/getting-value-from-a-control-inside-datatemplate-windows-phone-7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!