gpt4 book ai didi

c# - MVVM 绑定(bind)到数组索引

转载 作者:行者123 更新时间:2023-12-03 10:56:40 25 4
gpt4 key购买 nike

我正在使用 MVVM,并且正在尝试绑定(bind)数组索引。 XAML 控件的数据上下文绑定(bind)到 View 模型。当我实例化控件时,我将数组索引发送到构造函数,然后将该索引分配给窗口资源,以便 XAML 可以直接使用它。该值按预期传递给构造函数,我可以在 XAML 页面的其他区域使用它,但由于某种原因,它不能用作数组索引。有谁知道这里发生了什么?

C#:

public partial class MyControl : UserControl {

public MyControl(int index) {
MyIndex = index;
InitializeComponent();
}

private int myIndex;
public int MyIndex {
get { return myIndex; }
set { myIndex = value; }
}

private void Mygrid_OnLoaded(object sender, System.Windows.RoutedEventArgs e) {
Resources["myResourceKey"] = MyIndex;
}
}

这是xaml:

定义资源:
<UserControl.Resources>
<sys:Int32 x:Key="myResourceKey"></sys:Int32>
</UserControl.Resources>

这不起作用。我收到绑定(bind)错误,因为它无法识别索引
 <GradientStop Color="{Binding MyObservableCollection[DynamicResource myResourceKey].ColorsBo.PageBackgroundPrimary}" Offset="1"/>

这确实有效,因此资源值被传递到 xaml:
<Label Grid.Column="0" Content="{DynamicResource myResourceKey}"/>

最佳答案

以下 XAML 无效:

MyObservableCollection[DynamicResource myResourceKey]
DynamicResource myResourceKey必须替换为常数,例如 1'abc' .

另一种选择是按照@Martin Zikmund 的建议在 View 模型中执行查找,或者使用绑定(bind)到 myResourceKey 的多重绑定(bind)。和 MyObservableCollection和一个多转换器:
https://blog.csainty.com/2009/12/wpf-multibinding-and.html

关于c# - MVVM 绑定(bind)到数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53010057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com