내 코드에서 무슨 일이 일어 났는지 이해가 안됩니다.메서드 개체의 ToString()은 이스케이프 문자에 백 슬래시를 추가합니다.
나는 RadioButton
을 포함하는 WrapPanel
을 가지고 있습니다. Tag
속성을 사용하여 RadioButton의 Content
속성을 실제 문자와 연결합니다. 예 : 도표 = \ t.
<WrapPanel HorizontalAlignment="Left" Margin="43,24,0,21" Name="wpColSep" VerticalAlignment="Center" Width="286" Orientation="Horizontal" Height="58">
<RadioButton Content="Tabulation" Height="16" Name="rbTab" Padding="6,0,20,0" Margin="0,0,0,7" Tag="\t" />
<RadioButton Content="Espace" Height="16" Name="rbSpace" Padding="6,0,20,0" Margin="0,0,0,7" Tag=" " />
<RadioButton Content="Point-virgule" Height="16" Name="rbPointVirgule" Padding="6,0,20,0" Margin="0,0,0,7" Tag=";" />
<RadioButton Content="Virgule" Height="16" Name="rbVirgule" Margin="0,7,0,0" Padding="6,0,20,0" Tag="," />
<RadioButton Content="Autre :" Height="16" Name="rbAutre" Margin="0,7,0,0" Padding="6,0,20,0" />
<TextBox Height="23" Name="tbAutre" Width="41" Margin="0,10,0,0" Padding="6,0,20,0" />
</WrapPanel>
그럼, 내가 체크 RadioButton
를 얻을이 코드 Tag
에 문자를 저장하려고 :
var rbChecked = wpColSep.ChildrenOfType<RadioButton>().Where(c => c.IsChecked ?? false).FirstOrDefault();
if (rbChecked == rbAutre && !String.IsNullOrEmpty(tbAutre.Text))
{
//Not important here
}
else if (rbChecked != null)
{
ConfigImport.SeparateurColonne = rbChecked.Tag.ToString();
}
else
{
//No RadioButton checked
}
이 완벽하게 작동하지만 때 Tag
을
이
는 XAML 부분입니다 = "\ t", 은 "\\ t"를 생성합니다.이유는 무엇이며 어떻게 피할 수 있습니까?
미리 감사드립니다. 내 영어가 유감 스럽습니다.
, 당신은 결과를보고있다 디버거에서? 디버거는 문자열 변수를 검사 할 때 특정 문자를 이스케이프하지만 시각적 인 것으로 문자열에 반드시 해당 문자가 포함되지는 않습니다. 이 방법을 다른 방법으로 확인하는 경우 방법을 알려주십시오. –
@ LasseV.Karlsen 네,이 줄 뒤에 중단 점을 넣고'ConfigImport.SeparateurColonne'의 값을 봅니다. – Chostakovitch
그렇다면 이것은 문제가되지 않습니다. 이것은 실제 문자열 내용이 아니라 디버거입니다. –