2016-12-13 6 views
0

콘텐츠로 TextBlock이있는 몇 개의 CheckBox가 있습니다. 이제 각 확인란에서 TextBlock.Text를 읽고 싶습니다.WPF 읽기 Checkbox.Content

checkBox.Content.ToString();과 같은 콘텐츠를 읽으면 나는 단지 System.Windows.Controls.TextBlock을 얻습니다.

또한 새로운 TextBlock을 만들고 내용을 제공하려했지만 작동하지 않았습니다.

TextBlock _tempTBL = new TextBlock(); 
    _tempTBL = checkBox.Content; 

어떤 도움을 주셔서 감사합니다.

답변

3
var _tempTBL = (TextBlock) checkBox.Content; //Get handle to TextBlock 
var text = _tempTBL.Text; //Read TextBlock's text 

편집 : 보조 노트에

, 직접 설정할 수 있습니다 원하는 텍스트 내용 CheckBox's한다.

checkBox.Content = "Hello World";

그리고 텍스트를 액세스 할 때, 어떤 타입 캐스트는 당신이 방금 입력 한 코드로 작업 할 알고하지만 그 주목해야한다

string text = checkBox.Content;

+0

고맙습니다. – mykds

+0

@mykds 또한 'CheckBox's' 콘텐츠를 문자열 값으로 직접 설정할 수도 있습니다. 내 편집을 참조하십시오. – Marshal

+0

암시 적 캐스트가 여전히 존재합니까? 'Content'는 객체의 타입을 반환합니다. – ps2goat

3

당신은 TextBlock에 형식을 캐스팅해야한다 :

// no need to 'new' it up if you're assigning an existing instance... 
TextBlock _tempTBL = (TextBlock) checkBox.Content; 
+2

을 필요하지 않습니다 '= new TextBlock()'은 단지 다음 줄에 버려지는'TextBlock'을 생성하기 때문에 불필요합니다. – adv12

+0

그게 전부입니다. 고맙습니다 :-) – mykds

+0

@ adv12 더 나은 (깨끗한) 솔루션이 있습니까? 편집 : 아 나는 당신이 의미하는 것을 참조하십시오. 가장 쉬운 방법은 다음과 같습니다. TextBlock _tempTBL = (TextBlock) checkBox.Content; – mykds