问题标签 [binding-context]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
81 浏览

binding - 我可以在我的 CollectionView 中使用填充视图的 ItemsSource 列表之外的值填充标签吗?

我的 CollectionView 中有一个标签,我需要用填充视图的 ItemsSource 列表之外的值填充它。以下代码是我要完成的示例,但似乎 CollectionView 将绑定上下文限制为仅 Items 列表。我尝试命名标签并将其设置在我的 c# 代码中,但我似乎无法访问 c# 中的标签。我想我可以在 c# 中构建整个页面,而不是使用 .xaml,但与此示例不同的是,我的实际代码使用多个模板和一个模板选择器。如果我能在不重写数小时代码的情况下解决这个问题,我会更喜欢它。

项目页面.xaml

ItemsViewModel.cs

0 投票
1 回答
142 浏览

xamarin.forms - 子 ViewModel 的 PropertyChange 不会更新 Xamarin 中的 UI

我有一个带有 Telerik TabView 的页面。这包含两个选项卡。每个选项卡都包含一个在单独文件中指定为 ContentView 的视图。每个视图都有自己的 ViewModel,在页面的 ViewModel 中引用。

在 UI 中,我使用子 ViewModels 作为 TabHeaders 中元素的 BindingContext。在初始加载时,使用的属性的值被正确加载,但是当值被更新时,UI 不会更新。为什么?

所有 ViewModel 都实现了相同的基类,该基类实现了 INotifyPropertyChanged,并且调用了使用的属性的 OnPropertyChanged() 方法,并且可以在自己的 ViewModel 中接收。

页面视图模型:

子视图模型(EquipmentOverviewViewModel):

页面 XAML(circle:CircleImage 中使用的子 ViewModel):

0 投票
2 回答
44 浏览

c# - 点击 ListView 中的图像,我们应该得到特定 Row 的属性值

我有一个 listView,它包含一个带有项目列表的图像。当我点击图像时,我应该得到该行的 ProfileID。

0 投票
2 回答
46 浏览

c# - 如何向 xaml 中的绑定添加其他文本(或字符串)

我有这个:

显然 {Binding Height} 占据了整个文本。

绑定当前是双重的,需要保持不变,我只需要在末尾连接一个“m”来表示米。

我试过 {Binding Height} m 和 {Binding Height + m} 但显然 xaml 的工作方式与常规字符串连接的工作方式不同。

0 投票
1 回答
65 浏览

xamarin - 如何在导航页面 2 中更改某些数据时刷新 HomePageViewModel 上的绑定

我有一些从 HomePageViewModel 中的 Page2 使用的属性,当我导航到 Page2 时,我更改了该属性并通过执行 NavigiationPop 返回。

HomePage 根本没有重新加载/刷新,因为我在 HomePage 的构造函数中设置了 BindingContext,它只加载一次。

对我有用的解决方案是将 BindingContext 设置为“onAppearing()”上的 ViewModel,通常它不考虑最佳实践。但我还需要刷新我在 Page2 上更改的值。

期待您的宝贵意见和建议。

还有在 OnAppearing 中设置 BindingContext 的优缺点。

谢谢,

赫曼

0 投票
1 回答
62 浏览

xamarin.forms - Xamarin Forms:如何正确地将数据从两个视图模型绑定到单个视图?

这是用于测试目的的短代码。问题是 UI 没有显示与 ViewModelB 绑定的标签中的文本。在调试中,当我在 xaml 中将鼠标悬停在标签中的文本上时,我看到正确的绑定数据在那里,但 UI 根本不会显示。使用 ViewModelA 没有问题。

在 XAML 中:

ViewModelA:其中 BaseViewModel 是 INotifyPropertyChanged 接口

ViewModelB 是这样的:

在 ViewModelA 中有更多我需要的属性,而在 ViewModelB 中只是一个从函数获取数据的属性。我可以从它们中只制作一个 ViewModel,效果很好,但我试图让它们更小且更有条理。我已经尝试了很多场景并且变得非常令人沮丧。感谢您的帮助。

0 投票
0 回答
34 浏览

c# - 来自调用者 Xamarin 的 BindingContext

所以我和我的同事在做同一个项目。当我们合并我们的分支时,我的 xaml 格式略有不同。最后VerticalOptions="FillAndExpand"成功了。

那我想问什么?:页面让我们称之为主页改变了它的布局,但我的 XAML 页面被实例化的方式是相同的 ->Shell.Current.Navigation.PushAsync(new DefaultPage());和以前一样。那么BindingContext这里的调用者是否有可能将 Homepage 转移到新对象(DefaultPage),因此我们需要添加VerticalOptions="FillAndExpand"?

还是我完全坐错了火车?

0 投票
1 回答
63 浏览

mvvm - 来自 Xamarin.Forms 中 ListView.ItemTemplate 的 ViewModel 命令调用

在这里,我使用 MVVM 架构来开发应用程序。我在 listview 中有一个图像,并且 listview 与一个列表(ViewAcceptedList)绑定。在这里,我使用 TapGestureRecognizer 作为图像。在图像内部,我需要调用一个命令(ChatTappedCommand)。我正在分享我的代码,我是如何尝试实现这个要求的。我需要一位有经验的人的帮助。

在这里,我试图在 ViewModel 类中调用一个命令,并且我需要通过这个调用发送一个 Id。(命令、命令参数、绑定上下文)

0 投票
2 回答
344 浏览

xamarin.forms - 当xamarin中的应用程序启动时间形成MVVM时如何创建视图模型实例

我的目标是访问整个应用程序的可绑定属性。但是我当前的框架 ViewModel 实例创建了多次

我的要求:我在bottomTray(CheckuoutViewModel)中有购物车数量我想在应用页面中的任何位置增加购物车数量,但是在此购物车数量在返回点击时不会更新,它仅适用于前向导航,CheckoutViewModel背后的原因每次都创建实例。这样我就可以尝试更早地进行即时创作。

这里我列出了示例 ViewModel 和调用方法

  1. 登录视图模型
  2. Checkuout ViewModel(此视图模型适用于所有页面)
  3. BaseNavigationViewModel(其 BaseViewModel)

截至目前,我每次都在调用 BindinContext 时,

  • 新的登录视图模式(导航)
  • new CheckoutViewModel(navigation) 当像 ViewModel Locator 这样的应用程序启动时间时,如何创建所有 ViewModel 实例?

我试过了

和 ViewModel 定位器

和 CustomTabBar.xaml.cs

和期望

这种方法运行良好,但会产生一些导航问题