Я начинаю свой опыт с C #. Попробовал немного подумать, но не получилось. Я попытался скопировать существующий список в какой-то другой, но не смог просмотреть его в представлении, так как он ToList () копирует новый созданный объект new listOfTrans
. Мой вопрос касается кода, приведенного ниже:
ModelApplication.cs имеет собственный конструктор:
public ModelApplication()
{
ilość_Transformatorów = 2;
ilość_Uzwojeń = 2;
ilość_Linii_Wyjściowych_SZ1_S1 = 1;
ilość_Linii_Wyjściowych_SZ1_S2 = 1;
listOfTrans = new List<Transformator>() { };
szynaWe = new SzynaWe();
listOfSzynaWy = new List<SzynaWy>();
napięcie_Znamionowe_UGN = 0;
Init();
}
Тогда у меня есть public static void RefreshID()
, который устанавливает все поля, например: Transformator.id = 0;
, и метод public void Refresh()
:
RefreshID();
ilość_Generacji = 2;
ilość_Linii_Wejściowych = 2;
listOfTrans.Clear();
szynaWe.listOfGen.Clear();
szynaWe.listOfLines.Clear();
if (ilość_Transformatorów == 1)
{
listOfTrans.Add(new Transformator() { listOfSection = new List<Sekcja>() { new Sekcja() } });
}
else if (ilość_Transformatorów == 2)
{
listOfTrans.Add(new Transformator() { listOfSection = new List<Sekcja>() { new Sekcja() } });
listOfTrans.Add(new Transformator() { listOfSection = new List<Sekcja>() { new Sekcja() } });
}
...
К вопросу ... всякий раз, когда я снова изменяю ilość_Transformatorów = 2;
на 1
или 2
, я получаю новые объекты со значениями по умолчанию, а не со значениями, которые я определяю в представлении после запуска программы. Я хочу, чтобы эти значения были "сохранены" и вызваны снова, когда, конечно, поле ilość_Transformatorów
изменится и отобразит эти вновь введенные значения в окне.
MainWindows.xaml
код:
<Grid Grid.Column="0" Grid.Row="11" Grid.ColumnSpan="2">
<DataGrid Style="{StaticResource AzureDataGrid}" Margin="0,20,0,0"
Name="TransformersDataGrid" AutoGenerateColumns="False" CanUserSortColumns="False"
CanUserAddRows="False" SnapsToDevicePixels="True" Controls:ControlsHelper.ContentCharacterCasing="Normal">
<DataGrid.Columns>
<DataGridTextColumn MaxWidth="150" Header="TRANSFORMATOR" Binding="{Binding Path=nazwa}">
</DataGridTextColumn>
<DataGridTextColumn Header="UDN [KV]" Binding="{Binding Path=napięcie_UD, Converter={StaticResource kiloConverter}}"/>
<DataGridTextColumn Header="UGN [KV]" Binding="{Binding Path=napięcie_UG, Converter={StaticResource kiloConverter}}"/>
<DataGridTextColumn Header="Sn [MVA]" Binding="{Binding Path=moc_Znamionowa, Converter={StaticResource megaConverter}}"/>
<DataGridTextColumn Header="dPcu [kW]" Binding="{Binding Path=dPcu, Converter={StaticResource kiloConverter}}"/>
<DataGridTextColumn Header="dUz [%]" Binding="{Binding Path=dUz}"/>
<DataGridTextColumn Header="cos Fi [-]" Binding="{Binding Path=cosFi}"/>
<DataGridTextColumn Header="KT[-]" Binding="{Binding Path=KT}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
Transformator.cs
код:
public Transformator()
{
id++;
ID = id;
this.liczbaUzwojeń = 2;
nazwa = "Transformator " + id.ToString();
Init();
}
public void Init()
{
napięcie_UD = 16500;
napięcie_UG = 110000;
moc_Znamionowa = 25000000;
dPcu = 12000;
dUz = 11;
cosFi = 0.8;
KT = 0.973;
}
Вся помощь и предложения приветствуются.