【发布时间】:2020-03-24 20:13:10
【问题描述】:
在我的 ListView 中查找另一个按钮时遇到了一些问题。
这是 XAML:
<ListView ItemsSource="{Binding QuestionList}"
x:Name="Item_list"
HasUnevenRows="False"
IsVisible="{Binding IsVisible}"
HeightRequest="5400"
RowHeight="180"
BackgroundColor="#BED6E1">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout BackgroundColor="#BED6E1" HorizontalOptions="Center" VerticalOptions="Center">
<Label Text="{Binding question}" FontSize="16" Padding="10,20,10,10"/>
<Grid HorizontalOptions="Center" Padding="15,20,0,10">
<Grid.ColumnDefinitions >
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button x:Name="YesButton" Margin="0,0,20,0" Text="YES" FontAttributes="Bold" BorderWidth="2" BorderColor="White" CornerRadius="10" Clicked="YesButton_Clicked" ClassId="YesButton" BackgroundColor="White" />
<Button x:Name="NoButton" Margin="0,0,20,0" Grid.Column="1" Text="NO" FontAttributes="Bold" BorderWidth="2" BorderColor="White" CornerRadius="10" BackgroundColor="White" Clicked="NoButton_Clicked" ClassId="NoButton"/>
</Grid>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我想做的是,如果我点击 YesButton,YesButton 的边框颜色会改变,它也会改变 NoButton 的边框颜色。
我可以像这样引用单击的按钮:
private void YesButton_Clicked(Object sender, EventArgs e)
{
var button = (Button)sender;
button.BorderColor = Xamarin.Forms.Color.FromRgb(33, 255, 20);
... (and here's some other stuff)
}
但是我怎样才能同时引用另一个按钮呢?总而言之,如果用户单击是按钮,边框颜色会更改为该按钮,它将“重置”否按钮的边框颜色。
请注意,列表中有很多这样的“是-否”按钮。
我尝试使用 X:name,通过在如下代码中调用另一个按钮:
NoButton.BorderColor = Xamarin.Forms.Color.FromRgb(33, 255, 20);
但它没有找到它并返回错误。有什么想法吗?
【问题讨论】:
标签: c# xamarin xamarin.forms xamarin.android xamarin.ios