private void ShowAttributeParas(BinaryAttribute ba, StackPanel sp) { CheckBox cb = new CheckBox { Content = "非对称", IsChecked = ba.IsAsymmetry }; cb.Checked += (s, e) => { ba.IsAsymmetry = true; }; cb.Unchecked += (s, e) => { ba.IsAsymmetry = false; }; TextBlock t0 = new TextBlock() { Text = "值为0的字符串" }; TextBlock tb0 = new TextBlock() { Text = ba.Value0 }; TextBlock t1 = new TextBlock() { Text = "值为1的字符串" }; TextBlock tb1 = new TextBlock() { Text = ba.Value1 };; Button switchButton = new Button() { Content = "对换" }; switchButton.Click += (s, e) => { ba.SwitchValue(); tb0.Text = ba.Value0; tb1.Text = ba.Value1; }; sp.Children.Clear(); sp.Children.Add(cb); sp.Children.Add(t0); sp.Children.Add(tb0); sp.Children.Add(t1); sp.Children.Add(tb1); sp.Children.Add(switchButton); }
private void AttributeType_SelectionChanged(object sender, SelectionChangedEventArgs e) { var cb = (sender as ComboBox); if (cb.SelectedItem == null) { return; } StackPanel fsp = cb.Parent as StackPanel; var sp = fsp.Children[2] as StackPanel; int i = GetIndexOfStackPanel(fsp); try { ClearTips(); switch (cb.SelectedIndex) { case 0: var ba = new BinaryAttribute(AttributesNames[i]); Data.Attributes[i] = ba; ba.SetValueFromData(Data[ba].RowsOfData); ShowAttributeParas(Data.Attributes[i] as BinaryAttribute, sp); break; case 1: var nora = new NorminalAttribute(AttributesNames[i]); Data.Attributes[i] = nora; nora.SetNorminalsFromData(Data[nora].RowsOfData); sp.Children.Clear(); break; case 2: Data.Attributes[i] = new OrdinalAttribute(AttributesNames[i]); ShowAttributeParas(Data.Attributes[i] as OrdinalAttribute, sp); break; case 3: var na = new NumericalAttribute(AttributesNames[i]); Data.Attributes[i] = na; na.SetMaxMinuxMinFromData(Data[na].RowsOfData); sp.Children.Clear(); break; } } catch (Exception excp) { ShowTips(excp.Message); cb.SelectedItem = null; } }