初めてです。また、プログラマーではなく、スクリプター/デザイナーでもあります。UWP 10(xaml) - ネストされた観察可能なコレクションを持つMVVM - リストボックス
とにかく。私はその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}"/>
両方didntの仕事を私が試みた何
。いずれかの方法。奇妙なことは..選択が行われていることです。 リストボックスが作成され、コレクションが(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);
}
誰でも正しい方向に指し示すことができます(例は非常に高く評価されます)。より多くのコードが必要な場合は、お問い合わせください。前述のように、これは私の最初の質問/投稿です。
大切にしてください。
この行は何をする予定ですか? 'companies.ProjectsListed.Remove(project);'一見すると、 'project'は新しく作成されたオブジェクトであり、observablecollectionには存在しないので、この行は単に例外をスローします。 – kennyzx
おそらくリスト/ xmlfileからプロジェクトを削除するべきです。不思議にも、(リストボックスに向かう私の前に)働いていた時がありました。そのため私はそれを振り返っていません。 Companies = "parent"、ProjectsListed = observablecollection&remove =配列/コレクションからアイテムを削除するために使用されるコマンド。また、ボタンを押したときに例外がスローされません。だから.. – SdNA
@kennyzxさんのコメントによると、あなたの問題を更新して解決しましたか?それでも問題がある場合は、私たちのテスト用に[mcve]を持っていましたか? –