0

我的 Windows Phone 应用程序中有一个列表框。在列表框 DataTemplate 中,我放置了一个按钮。如何在代码隐藏中获取按钮对象。我没有在 .cs 文件中获得 rowButton 的引用。我想更改每行按钮的按钮背景颜色。如何在后面的代码中获取按钮引用?

我遵循用于列表视图的代码。

<Grid  Height="530" Grid.Row="1" VerticalAlignment="Top" Margin="0,30,0,0">
            <ListBox Margin="0,0,0,0" Name="TransactionList">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Button  Width="460" Height="150" Click="user_click" Name="rowButton" >
                            <Button.Content>
                                <StackPanel Orientation="Horizontal" Height="auto" Width="400">
                                    <Image Width="80" Height="80" Source="{Binding Type}"></Image>
                                    <StackPanel Orientation="Vertical" Height="150" Margin="20,0,0,0">
                                        <StackPanel Orientation="Horizontal" Height="40">
                                            <TextBlock Width="100" FontSize="22" Text="Name :" Height="40" ></TextBlock>
                                            <TextBlock Width="auto" FontSize="22" Text="{Binding Name}" Height="40" ></TextBlock>
                                        </StackPanel>
                                        <StackPanel Orientation="Horizontal" Height="40">
                                            <TextBlock Width="100" FontSize="22" Text="Date :" Height="40" ></TextBlock>
                                            <TextBlock Width="100" FontSize="22" Text="{Binding Date}" Height="40" ></TextBlock>
                                        </StackPanel>
                                        <StackPanel Orientation="Horizontal" Height="40">
                                            <TextBlock Width="100" FontSize="22" Text="Amount :" Height="40" ></TextBlock>
                                            <TextBlock Width="auto" FontSize="22" Text="{Binding Amount}" Height="40" ></TextBlock>
                                            <TextBlock Width="auto" FontSize="22" Text=" $" Height="40" ></TextBlock>
                                        </StackPanel>
                                    </StackPanel>
                                </StackPanel>
                            </Button.Content>
                        </Button>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </Grid>
4

2 回答 2

2

如果要更改用户单击的背景,请在单击事件处理程序中使用

            Button button1 = sender as Button;
            button1.Backgorund = new SolidColorBrush(Colors.Red);

更改背景颜色。

否则为每个按钮绑定背景属性,并在列表框中的项目迭代时更改其值。

于 2012-09-24T11:12:35.470 回答
0

如果没有看到您如何尝试在代码中访问它,就不可能说出为什么您正在做的事情不起作用。

但是,如果您使用数据绑定来设置模板项的颜色会容易得多

于 2012-09-24T11:08:56.207 回答