1

私の wpf アプリでは、ListBox エントリのマウス ダブル クリック イベントを記述しました。単一のエントリをダブルクリックすると、サーバーに投稿されます。私の問題は、エントリをサーバーに投稿するときに、そのエントリの DataTemplate のみを変更したいということです。私が書いた以下のコードでは、すべてのエントリをサーバーに投稿しました。そのため、単一エントリのみの DataTemplate を変更する方法を提案してください。「Harvest_TimeSheetEntry」は、私の ListBox エントリです。

コード内のコメントも参照してください。

C# コード:

    private void listBox1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        //Submit clicked Entry
        if (sender is ListBoxItem)
        {
            ListBoxItem item = (ListBoxItem)sender;
            Harvest_TimeSheetEntry entryToPost = (Harvest_TimeSheetEntry)item.DataContext;

            if (!entryToPost.isSynced)
            {
                //Check if something is selected in selectedClientItem and selectedProjectItem For that items
                if (entryToPost.ClientNameBinding == "Select Client" || entryToPost.ProjectNameBinding == "Select Project")
                    System.Windows.MessageBox.Show("Please select your Project and Client");
                else
                {
                    Globals._globalController.harvestManager.postHarvestEntry(entryToPost);
                    System.Windows.MessageBox.Show("Entry posted");
                    DataTemplate tmpl = (DataTemplate)this.FindResource("DefaultDataTemplate");
                    listBox1.ItemTemplate = tmpl;   // **Here I want to change DataTemplate for only posted entry.**
                }
            }
            else
            {

                //Already synced.. Make a noise or something
                System.Windows.MessageBox.Show("Already Synced;TODO Play a Sound Instead");
            }
        }
    } 
4

1 に答える 1