private void 除势力ToolStripMenuItem_Click(object sender, EventArgs e) { FactionList list = new FactionList(); for (int i = 0; i < this.dgvFactions.SelectedRows.Count; i++) { list.Add(this.Factions[this.dgvFactions.SelectedRows[i].Index]); } foreach (Faction faction in this.Scenario.Factions) { foreach (Faction faction2 in list) { this.Scenario.DiplomaticRelations.RemoveDiplomaticRelationByFactionID(faction2.ID); } } foreach (Faction faction in list) { this.Scenario.Factions.RemoveFaction(faction); } foreach (Legion legion in this.Scenario.Legions.GetList()) { if (legion.BelongedFaction == null) { this.Scenario.Legions.Remove(legion); } } foreach (Section section in this.Scenario.Sections.GetList()) { if (section.BelongedFaction == null) { this.Scenario.Sections.Remove(section); } } this.RebindDataSource(); }
private void EditFactions() { FactionList list = new FactionList(); for (int i = 0; i < this.dgvFactions.SelectedRows.Count; i++) { list.Add(this.Factions[this.dgvFactions.SelectedRows[i].Index]); } if (list.Count > 0) { frmEditFaction faction = new frmEditFaction(); faction.Factions = list; faction.ShowDialog(); this.dgvFactions.Invalidate(); } }
private void BtnFaction_Click(object sender, RoutedEventArgs e) { Window window = new Window(); window.Title = "選擇事件能觸發的勢力"; window.WindowStartupLocation = WindowStartupLocation.CenterScreen; window.Width = 800; window.Height = 600; Grid grid = new Grid(); window.Content = grid; DataGrid dataGrid1 = new DataGrid(); DataTable dt2 = new DataTable(); dt2.Columns.Add("點選", typeof(Boolean)); dt2.Columns.Add("ID", typeof(int)); dt2.Columns["ID"].ReadOnly = true; dt2.Columns.Add("名稱"); dt2.Columns["名稱"].ReadOnly = true; dt2.Columns.Add("君主"); dt2.Columns["君主"].ReadOnly = true; dt2.Columns.Add("建築數"); dt2.Columns["建築數"].ReadOnly = true; dt2.Columns.Add("武將數"); dt2.Columns["武將數"].ReadOnly = true; foreach (Faction f in scen.Factions) { DataRow dr = dt2.NewRow(); dr["點選"] = tempFactions.GameObjects.Contains(f); dr["ID"] = f.ID; dr["名稱"] = f.Name; dr["君主"] = f.Leader.Name; dr["建築數"] = f.ArchitectureCount; dr["武將數"] = f.PersonCount; dt2.Rows.Add(dr); } dataGrid1.ItemsSource = dt2.DefaultView; grid.Children.Add(dataGrid1); dataGrid1.ColumnWidth = new DataGridLength(1, DataGridLengthUnitType.Star); window.Closed += Closed; window.ShowDialog(); void Closed(object source, EventArgs e2) { tempFactions.Clear(); for (int r = 0; r < dataGrid1.Items.Count; r++) { DataRowView item = dataGrid1.Items[r] as DataRowView; if (item == null) { continue; } if ((bool)item["點選"]) { tempFactions.Add((Faction)scen.Factions.GetGameObject((int)item["ID"])); } } lblFaction.Content = String.Join(" ", tempFactions.GameObjects.Select(p => p.Name)); } }