前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >XP上XamlReader读取XAML失败的问题

XP上XamlReader读取XAML失败的问题

作者头像
kiki.
发布2022-09-29 08:06:06
6190
发布2022-09-29 08:06:06
举报
文章被收录于专栏:web全栈之路web全栈之路

项目中DataGrid需要合并列,开始还以为XP不支持WPF动态模版创建,后来发现是XP上不支持绑定数据的格式化(加¥),把StringFormat={}{0:C}, ConverterCulture=zh-CN去掉,就可以正常绑定数据了

代码语言:javascript
复制
 StringBuilder cellTemp = new StringBuilder();
            cellTemp.Append("<DataTemplate ");
            cellTemp.Append(" xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'");
            cellTemp.Append(" xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' ");
            cellTemp.Append(" xmlns:toolkit=\"http://schemas.microsoft.com/wpf/2008/toolkit\" ");
            cellTemp.Append("   >");
            cellTemp.Append("<Grid Width=\"{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=toolkit:DataGridCell},Path=ActualWidth}\" ");
            cellTemp.Append("     Height=\"{Binding RelativeSource={RelativeSource AncestorType=toolkit:DataGridColumnHeader},Path=ActualHeight}\"  >");
            cellTemp.Append("		<Grid.ColumnDefinitions>");
            cellTemp.Append("			<ColumnDefinition Width=\"0.16*\"></ColumnDefinition>");
            cellTemp.Append("			<ColumnDefinition Width=\"0.34*\"></ColumnDefinition>");
            cellTemp.Append("			<ColumnDefinition Width=\"0.16*\"></ColumnDefinition>");
            cellTemp.Append("			<ColumnDefinition Width=\"0.34*\"></ColumnDefinition>");
            cellTemp.Append("		</Grid.ColumnDefinitions>");
            cellTemp.Append("		<TextBlock Text=\"¥\" HorizontalAlignment=\"Right\" VerticalAlignment=\"Center\"/>");
            cellTemp.Append("		<TextBlock Grid.Column=\"1\"  Text=\"{Binding " + bindFieldSale + "}\" HorizontalAlignment=\"Left\" VerticalAlignment=\"Center\">");
            cellTemp.Append("           <TextBlock.ToolTip >");
            cellTemp.Append("               <ToolTip DataContext=\"{Binding Path=PlacementTarget,RelativeSource={x:Static RelativeSource.Self}}\">");
            cellTemp.Append("                   <WrapPanel>");
            cellTemp.Append("                       <TextBlock Text=\"¥\"/>");
            cellTemp.Append("                       <TextBlock Text=\"{Binding  Path=Text}\"/>");
            cellTemp.Append("                   </WrapPanel>");
            cellTemp.Append("               </ToolTip>");
            cellTemp.Append("         </TextBlock.ToolTip >");
            cellTemp.Append("       </TextBlock>");
            cellTemp.Append("		<TextBlock Grid.Column=\"2\"  Text=\"¥\" HorizontalAlignment=\"Right\" VerticalAlignment=\"Center\"/>");
            cellTemp.Append("		<TextBlock Grid.Column=\"3\" Text=\"{Binding "+bindFieldPercentage+"}\" HorizontalAlignment=\"Left\" VerticalAlignment=\"Center\">");
            cellTemp.Append("           <TextBlock.ToolTip>");
            cellTemp.Append("               <ToolTip DataContext=\"{Binding Path=PlacementTarget,RelativeSource={x:Static RelativeSource.Self}}\">");
            cellTemp.Append("                   <WrapPanel>");
            cellTemp.Append("                       <TextBlock Text=\"¥\"/>");
            cellTemp.Append("                       <TextBlock Text=\"{Binding  Path=Text}\"/>");
            cellTemp.Append("                   </WrapPanel>");
            cellTemp.Append("               </ToolTip>");
            cellTemp.Append("           </TextBlock.ToolTip>");
            cellTemp.Append("       </TextBlock>");
            cellTemp.Append("</Grid>");
            cellTemp.Append("</DataTemplate>");
            DataTemplate dt = null;
dt = (DataTemplate)System.Windows.Markup.XamlReader.Parse(cellTemp.ToString());//最好加异常处理

然后加TextBlock显示“¥”,并当鼠标悬浮时,显示数字

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档