xamarin 表单 - 如何访问 BindingContext 中的字符串

Posted

技术标签:

【中文标题】xamarin 表单 - 如何访问 BindingContext 中的字符串【英文标题】:xamarin form - how to access string in BindingContext 【发布时间】:2021-12-01 04:55:24 【问题描述】:

我有以下表格

        <ListView x:Name="DocumentList"
                  HasUnevenRows="true"
                 >
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>                        
                     <ViewCell.ContextActions>
                            <MenuItem Text="Check In"
                                      Clicked="CheckInFile"/>
                            <MenuItem Text="Check Out"
                                      Clicked="CheckOutFile"/>
                            <MenuItem Text="Status"
                                      Clicked="FileStatus"/>
                        </ViewCell.ContextActions>
                        
                        <Grid>
                            <Label Text="Binding Path=WebUrl"
                                   FontSize="Small" />
                        </Grid>
                    </ViewCell>

                </DataTemplate>
            </ListView.ItemTemplate>

这里是上下文菜单中一项的点击事件处理程序:

    protected void CheckOutFile(object sender, EventArgs e)
    
        var menuItem = sender as MenuItem;
        if (menuItem != null)
        
            var webUrl = menuItem.BindingContext;
            DisplayAlert("Alert", "Check Out File: " + webUrl + "requested", "ok");
        
    

问题/疑问

问题 1

当表单加载时 - “WebUrl”值正确显示。 但是当我点击“CheckOut”时,我不知道如何从 menuItem.BindingContext 中提取值/url。警报显示为空。

问题 2

我只希望用户看到 WebUrl,但我想传递 3 个不同的值,比如当点击事件被触发时。我该怎么做?

抱歉,我只是 xaml 和 xamarin 的菜鸟。 谢谢。

【问题讨论】:

【参考方案1】:

如果您的ListView ItemsSourceList&lt;SomeType&gt; 那么

var item = (SomeType)menuItem.BindingContext;
DisplayAlert("Alert", "Check Out File: " + item.webUrl + "requested", "ok");

假设webUrlSomeType 的属性

【讨论】:

以上是关于xamarin 表单 - 如何访问 BindingContext 中的字符串的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 表单 - 从不正确的线程访问的领域

Xamarin 中的 Binding .

Xamarin 表单 - Java.Interop.lz4 访问被拒绝错误

自定义控件的 Xamarin 数据绑定值计算为 Xamarin.Forms.Binding

Xamarin 表单绑定 - 访问父属性

如何在 Xamarin 表单中设置工具栏项的图标