나는이 같은 텍스트 XAML 사용하여 DataTemplate을 생성하고 있습니다에 XAML 텍스트와 XamlReader에서 만든 DataTemplate을에서 변환기를 사용하여 WPF : 요소의전화 8
var dataTemplate = (DataTemplate)XamlReader.Load(xaml.ToString());
하나는 그것으로 바인딩 체크 박스 컨버터를 가리키는 것입니다 정적 리소스는 :
StringBuilder xaml = new StringBuilder();
xaml.AppendFormat(@" <CheckBox");
xaml.AppendFormat(@" IsChecked=""{{Binding [{0}], Converter={{StaticResource stringValueToBoolConverter}}, Mode=TwoWay}}""", header.ID);
xaml.AppendFormat(@" />");
텍스트 변환이 문헌의 존재는 전화의 Application_UnhandledException에 잡힌 예외를 야기한다.
- InnerException {System.Exception: Error HRESULT E_FAIL has been returned from a call to a COM component.
at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
at MS.Internal.XcpImports.UIElement_Measure_WithDesiredSize(UIElement element, Size availableSize)
at System.Windows.UIElement.Measure_WithDesiredSize(Size availableSize)
at System.Windows.Controls.VirtualizingStackPanel.MeasureChild(UIElement child, Size layoutSlotSize)
at System.Windows.Controls.VirtualizingStackPanel.MeasureOverride(Size constraint)
at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Double inWidth, Double inHeight, Double& outWidth, Double& outHeight)} System.Exception
템플릿은 목록 상자에서 행을 생성하는 데 사용되며 제어가 자원에 선언 컨버터가 있습니다 : 메시지는 다음과 같습니다
<UserControl.Resources>
<converters:StringValueToBoolConverter x:Key="stringValueToBoolConverter" />
</UserControl.Resources>
내가 가정을 일부 생성 단계에서, xaml-> objects의 객체 생성 프로세스는 변환기를 찾을 수 없습니다. - 주위를 둘러 볼 방법이 있습니까?
** 추가
나는 또한 단지 확인란에 대한로드를 추가 시험- 같은 어설 컨버터를 추가로
StringBuilder xaml = new StringBuilder();
xaml.AppendFormat(@" <CheckBox");
xaml.AppendFormat(@" IsChecked=""{{Binding [{0}], Mode=TwoWay}}""", header.ID);
xaml.AppendFormat(@" Loaded=""FrameworkElement_OnLoaded""");
아마 로더이 컨텍스트를 제공 할 수있는 방법이?
자세히 설명해 주시겠습니까? 나는 각 ListBox 항목이 단일 행의 격자 인 ListBox를 사용하여 DataGrid와 유사한 UI를 만들려고 시도하고 있습니다. 열의 수와 데이터 유형은 컴파일 타임에 알려지지 않습니다. 모든 열은 bool 또는 문자열 유형일 수 있으며 bool (CheckBox)의 경우 데이터 변환을 관리해야합니다. – jchristof
stringbuilder가 xaml을 본질적으로 다시 작성하고이를 제어 도구에 주입하고 있습니다. iumerable에 파싱하고 해당 속성에 액세스하는 데이터 템플릿 구성 요소 내의 ItemsSource = {binding boolIenumerableWhateverThisPropertyIsCalled}도 유효합니다. 데이터 템플릿은 각각의 visiblity 컨테이너를 호출하여 화면에 그릴 수 있습니다. 여기 DataGrids에 대한 추가 정보 [link] http://www.dotnetperls.com/datagrid 및 dataTemplate [link] http://www.codeproject.com/Articles/444371/Creating-WPF-Data-Templates-in-Code - 올바른 방법 – maximdumont
문자열 작성기는 일부 스키마 데이터로 결정되는 체크 박스 또는 텍스트 상자 요소를 생성합니다. 실제 원점 데이터는 모두 문자열이므로 올바른 ui 요소를 만든 다음 변환기가 문자열 데이터가 부울로 평가 될 것으로 예상되는 경우)하지만 이것은 디자인 타임에 알 수 없으며 행에 대해 얻은 데이터는 –
jchristof