Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取viewCell中按钮的id_C_Xamarin_Xamarin.forms - Fatal编程技术网

如何获取viewCell中按钮的id

如何获取viewCell中按钮的id,c,xamarin,xamarin.forms,C,Xamarin,Xamarin.forms,我在viewCell中有一个按钮,我有两个付费和取消状态,显示在此标签文本=“{Binding statusDescr}”中,当标签上的状态为付费时,按钮应出现,当取消时,按钮不应出现。我的问题是,我无法获取viewcell中按钮的ID,使其在标签上的状态为付费时可见,而在取消时不可见 <ListView x:Name="Lista" SeparatorColor="Gray" SeparatorVisibility="Default"

我在viewCell中有一个按钮,我有两个付费和取消状态,显示在此标签文本=“{Binding statusDescr}”中,当标签上的状态为付费时,按钮应出现,当取消时,按钮不应出现。我的问题是,我无法获取viewcell中按钮的ID,使其在标签上的状态为付费时可见,而在取消时不可见

<ListView x:Name="Lista"  
          SeparatorColor="Gray" 
          SeparatorVisibility="Default" 
          HasUnevenRows="True" 
          VerticalOptions="FillAndExpand" >
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout>
                    <StackLayout Orientation="Horizontal" >
                        <StackLayout Orientation="Horizontal" 
                                     HorizontalOptions="FillAndExpand">
                            <StackLayout>
                                <Label Text="{Bindenter code hereing entityName}" 
                                       TextColor="White" 
                                       Font="14"/>
                                <Label Text="{Binding cmPaymentDate}" 
                                       TextColor="White" 
                                       Font="14"/>
                                <Label Text="{Binding statusDescr}" 
                                       TextColor="White"
                                       Font="14"/>
                            </StackLayout>
                            <StackLayout HorizontalOptions="EndAndExpand">
                                <Button x:Name="cmdOpen" 
                                        Text="Open pdf" />
                                <Label Text="{Binding paymentAmount}" 
                                       TextColor="White"
                                       Font="14" 
                                       HorizontalOptions="End" />
                                <Label Text="{Binding paymentNumber}" 
                                       TextColor="White" 
                                       Font="10" 
                                       HorizontalOptions="End" />
                            </StackLayout>
                        </StackLayout>
                    </StackLayout>
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

听起来是一个将按钮的
IsVisible
属性绑定到付费状态的好地方:

<Button x:Name="cmdOpen" 
        IsVisible="{Binding paidState}" 
        Text="Open pdf" />

听起来是一个将按钮的
IsVisible
属性绑定到付费状态的好地方:

<Button x:Name="cmdOpen" 
        IsVisible="{Binding paidState}" 
        Text="Open pdf" />

但是这个付费或取消的状态会出现在标签@Felix D上。所以它是一个字符串?转换器方法仍然有效,它将是
return(string)value==“Paid”或任何付费字符串。我建议使用枚举而不是字符串来防止“神奇字符串”四处浮动,但这是另一个主题是的,它是。但我仍然理解如何在代码中获取id按钮,我的listview是从API填充的。如果按钮出现btn.IsVisible=true,我应该检查标签上的状态是否已支付,很难弄清楚为什么我还是Xamarin的新手@Andrew@AmaroManungu但是没有必要在代码隐藏中做这种事情。如果你是Xamarin的新手,这是你真正应该看看的东西@费利克斯。我一直在测试MVVM,但我在最后几天的实施过程中遇到了很多困难,但这个付费或取消状态将出现在@Felix D标签上。所以它是一个字符串?转换器方法仍然有效,它将是
return(string)value==“Paid”或任何付费字符串。我建议使用枚举而不是字符串来防止“神奇字符串”四处浮动,但这是另一个主题是的,它是。但我仍然理解如何在代码中获取id按钮,我的listview是从API填充的。如果按钮出现btn.IsVisible=true,我应该检查标签上的状态是否已支付,很难弄清楚为什么我还是Xamarin的新手@Andrew@AmaroManungu但是没有必要在代码隐藏中做这种事情。如果你是Xamarin的新手,这是你真正应该看看的东西@费利克斯。我一直在测试MVVM,但最近几天实现起来有很多困难
public class DoubleToBoolConverter : IValueConverter
{
    public object Convert(
               object value, 
               Type targetType, 
               object parameter, 
               CultureInfo culture)
    {
        return (double)value == 0;
    }

    public object ConvertBack(
               object value, 
               Type targetType, 
               object parameter, 
               CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}