所以第一次。而且,我不是一个程序员,更多的是一个抄写员/设计师。
不管怎么说。我有一个Listbox,它为它的itemsSource使用了一个可观察的集合。添加新条目并保存它们并不是一个问题,所有这些都是有效的。(通过INotifyChanged等)进行更改,一切都很好。
XAML:
<ListBox x:Name="ProjectsListedView"
ItemsSource="{Binding Companies.ProjectsListed}"
SelectedValue="{Binding ProjectsName}"
SelectedIndex="-1"
SelectionMode="Extended">
</Listbox>这部分起作用了。(除选择的值/索引外)
ProjectsListed是一个可观察的集合,是公司的一部分。所以我的想法是。当我选择一家公司..。出现该公司的上市项目。这是故意的。
但是..。在我的生活中,我无法让“选定的项目”正常工作。
我所尝试的是:
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>甚至:
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>两个人都没用。不管怎么说。奇怪的是..。有一个选择正在进行。创建列表框并添加集合时(从xml文件)。我可以选择一个项目。并将所选项中的信息输入文本框。示例:
<TextBox Text="{Binding SelectedItem.ProjectName, Mode=TwoWay, ElementName=ProjectsListedView}"
Style="{StaticResource TB_M}"
Width="450"
Name="ProjectNameInput"
PlaceholderText=""
Grid.Row="0"/>那么问题是什么:“选定的项目”不能删除。`
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);
}
Projects project = new Projects();
companies.ProjectsListed.Remove(project);
}谁能为我指出正确的方向(示例将不胜感激)。如果需要更多代码,请询问。如前所述,这是我的第一个问题/帖子。
致以亲切的问候。
发布于 2017-06-27 11:50:44
我已经解决了大部分的问题。
删除部分要感谢一位朋友的帮助,还有一部分来自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);
}它可能不会删除所选的内容,但至少是删除了一个条目。
而用于存储“所选项”的修复方法可能有点奇怪,但我只是在
public async void ProjectsListedView_SelectionChanged(object sender, SelectionChangedEventArgs e)在不同的地方。每一次调用“框架”,它都会重新加载这个。然而,实际选择的设置器(突出显示)没有工作,但总的来说,它是固定的。
感谢那些试图帮助你的人。
发布于 2017-06-17 07:23:39
我认为问题就在这里:SelectionMode="Extended"。
如果您查看这里 (如果锚不工作,搜索SelectionMode),您可以找到这一行:
当SelectionMode是多个或扩展时,使用SelectedItems属性获取所选的项。
如果不需要多个选择,请将SelectionMode更改为Single。否则,您需要使用SelectedItems属性而不是SelectedItem。
https://stackoverflow.com/questions/44601799
复制相似问题