gpt4 book ai didi

c# - 带有子集合的嵌套 ItemControls 上的 WPF 绑定(bind)

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

我有以下 xaml:

<ItemsControl ItemsSource="{Binding ResearchLanguageViewModel.Filters, Mode=OneWay}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=Type}"></TextBlock>
<TextBox Text="Search...."></TextBox>
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Path=Values}"></CheckBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

使用以下对象/集合:
public class FilterViewModel
{
public string Type { get; set; }
public ObservableCollection<string> Values { get; set; }
}

public class ResearchLanguageViewModel
{
public int FirmCount { get; set; }
public ObservableCollection<FilterViewModel> Filters { get; set; }
}

我正在尝试绑定(bind) Filters 属性并且 Type 属性很好。但是,我无法让字符串的 Values 集合显示为一组复选框。不知道我在这里做错了什么......

最佳答案

Values在您的 View 模型中是一个数组,您正在尝试(我假设)创建一个数组 Checkboxes每个复选框的值是该数组的索引值。

在您的模型中,您将值数组传递到单个复选框控件的内容中。您需要做的是将数组绑定(bind)到父级的 ItemsSource并将新值绑定(bind)到 Checkbox控件的内容。像这样的东西:

<ItemsControl ItemsSource="{Binding ResearchLanguageViewModel.Filters, Mode=OneWay}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=Type}"></TextBlock>
<TextBox Text="Search...."></TextBox>
<ItemsControl>
<ItemsControl.ItemTemplate ItemsSource={Binding Path=Values}>
<DataTemplate>
<CheckBox Content="{Binding Mode=TwoWay}"></CheckBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

关于c# - 带有子集合的嵌套 ItemControls 上的 WPF 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25127102/

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