현재 RS232를 통해 매개 변수를받는 프로젝트에서 일하고 있습니다. 내 프로그램은 Raspberry Pi에서 실행되며 Win10 IoT 플랫폼을 사용합니다.UI 요소를 처리하는 방법 코드에서 동적으로 만들었습니까?
내가받는 매개 변수를 표시하려면 코드 숨김 파일에서 동적으로 격자를 만듭니다. (이미 작동 중입니다.)
매개 변수를 얻은 후에 장치는 나에게 min으로 목록을 보냅니다. 및 최대. 값. 이 목록을 참조로 사용하여 슬라이더, 토글 스위치 또는 텍스트 상자를 만듭니다.
if ((maximum - minimum) > 1)
{
Slider ParameterSlider = new Slider();
ParameterSlider.Name = "Slider" + CountControls;
ParameterSlider.Width = 200;
ParameterSlider.ValueChanged += new RangeBaseValueChangedEventHandler(ParameterSlider1_ValueChanged);
ParameterSlider.Minimum = minimum;
ParameterSlider.Maximum = maximum;
ParameterSlider.Value = 0;
ParameterSlider.VerticalAlignment = VerticalAlignment.Center;
ParameterSlider.HorizontalAlignment = HorizontalAlignment.Left;
SettingsGrid.Children.Add(ParameterSlider);
Grid.SetColumn(ParameterSlider, 2);
Grid.SetRow(ParameterSlider, CountControls);
}
"최소"및 "최대"는 직렬 장치에서 가져온 변수입니다.
위에서 볼 수 있듯이 슬라이더 요소의 이름을 "슬라이더"로 설정하고 매개 변수의 위치를 그 뒤에 번호로 추가합니다.
"CountControls"는 올바른 순서로 그리드를 만드는 데 사용하는 변수입니다. 시리얼 입력을 받으면 0부터 100까지 카운트됩니다.
모든 요소 (Slider, Toogleswitch, TextBox)에 대해 요소가 현재 가지고있는 값을 표시하고 목록에서받는 단위 설명 (mm, m, kg, s)을 추가합니다. 시리얼 장치가 나에게 보낼 수 있습니다.
모든 것이 지금까지 작동하지만 값 상자를 추가하는 데 문제가 있습니다. 요소의 이름을 동적으로 작성하기 때문에 코드에서 참조 할 방법이 없습니다.
이 내가 텍스트 상자를 만드는 방법은 다음과 같습니다
TextBlock ParaValue = new TextBlock();
Thickness ValueMargin = ParaValue.Margin;
ValueMargin.Left = 10;
ValueMargin.Top = 5;
ParaValue.Name = "Value" + CountControls;
ParaValue.FontSize = 20;
ParaValue.Text = String.Empty + UnitBlock.Units[CountControls];
ParaValue.VerticalAlignment = VerticalAlignment.Top;
ParaValue.Margin = ValueMargin;
SettingsGrid.Children.Add(ParaValue);
Grid.SetColumn(ParaValue, 3);
Grid.SetRow(ParaValue, CountControls);
은 "ParaValue.Text"현재 "String.Empty로"를 포함하고 나는 UI 요소에서 내 값으로 대체 될이 원하는됩니다.
어떻게이 작업을 수행 할 수 있습니까? 여기
고마워요. :) 그 속임수를했습니다. 나는 바인딩 물건에 좀 더보아야 할 것 같아요. 조금 사용했지만 시작하기가 다소 복잡하다는 것을 알았습니다. – Daniel