所以第一次。此外,我不是程序员,更像是脚本/设计师。
反正。我有一个Listbox,它的itemsSource使用了一个可观察的集合。添加新条目并保存它们不是问题,所有这些都有效。进行更改(通过INotifyChanged等)一切正常。
XAML:
board.color
这部分有效。 (选定值/索引除外)
ProjectsListed是一个可观察的集合,是公司的一部分。 所以这个想法是。当我选择一家公司时......该公司列出的项目出现了。这是有意的。
然而..对于我的生活,我无法让“选定的项目”正常工作。
我的尝试:
<ListBox x:Name="ProjectsListedView"
ItemsSource="{Binding Companies.ProjectsListed}"
SelectedValue="{Binding ProjectsName}"
SelectedIndex="-1"
SelectionMode="Extended">
</Listbox>
甚至:
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
两个都没有用。无论如何。奇怪的是......有一个选择正在进行中。
创建列表框并添加集合(从xml文件)。我可以选择一个项目..并将所选项目中的信息导入文本框。例如:
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>
那么问题是什么: “选定项目”无法删除。 `
<TextBox Text="{Binding SelectedItem.ProjectName, Mode=TwoWay, ElementName=ProjectsListedView}"
Style="{StaticResource TB_M}"
Width="450"
Name="ProjectNameInput"
PlaceholderText=""
Grid.Row="0"/>
任何人都可以指出我正确的方向(例子将非常感谢)。如果需要更多代码,请询问。如前所述,这是我的第一个问题/帖子。
亲切的问候。
答案 0 :(得分:0)
我认为问题在于:if(checkData)
。
如果你看一下here(如果锚点不起作用,搜索SelectionMode),你可以找到这一行:
当SelectionMode为Multiple或Extended时,使用SelectedItems属性获取所选项目。
如果您不需要多次选择,请将SelectionMode="Extended"
更改为SelectionMode
。否则,您需要使用Single
属性而不是SelectedItems
。
答案 1 :(得分:0)
我已成功解决了大部分问题。
删除部分感谢朋友的帮助以及kennyzx发表的评论中的一点点
public async static Task DeleteProjectFile(this Company companies)
{
var file = await GetCompanyFile(companies.CompanyName);
if (file == null)
{
var folder = await GlobalFolder();
file = await folder.CreateFileAsync(companies.CompanyName + GlobalFileExtension, CreationCollisionOption.ReplaceExisting);
}
companies.ProjectsListed.RemoveAt(0);
}
它可能不会删除所选内容,但至少它会删除一个条目。
存储“选定项目”的修复可能有点奇怪,但我只是在
上创建了一个额外的xml序列化public async void ProjectsListedView_SelectionChanged(object sender, SelectionChangedEventArgs e)
在不同的位置。每次调用“框架”时,它都会重新加载。 然而,实际选择的setter(突出显示)不起作用,但总而言之,它是固定的。
感谢所有试图提供帮助的人。