简体   繁体   English

使用转换器,同时使用XamlReader.Parse()从字符串读取xaml

[英]using a converter while reading xaml from string using XamlReader.Parse()

I am trying to load this xaml using XamlReader.Parse() and this code: 我试图使用XamlReader.Parse()和以下代码加载此xaml:

<helpers:FilterDataGrid 
    xmlns:helpers="clr-namespace:URM.Helpers;assembly=URM"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:grid="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:convert="clr-namespace:URM.Converters;assembly=URM"
    ItemsSource ="{Binding PendingContracts}"
    AutoGenerateColumns="False" 
    Margin="20,0,10,0"
    Height ="Auto" 
    Width ="Auto">

    <helpers:FilterDataGrid.Resources> 
         <convert:DateConverter x:Key="DateConverter"/>
    </helpers:FilterDataGrid.Resources>

    <helpers:FilterDataGrid.Columns>
         <grid:DataGridTextColumn Header="Contract Id" Binding="{Binding ContractId}" />
         <grid:DataGridTextColumn Header="Date Submitted" Binding="{Binding DateSubmitted, {StaticResource DateConverter}}" />
         <grid:DataGridTextColumn Header="Submitted By" Binding="{Binding Submitted_by}" />
         <grid:DataGridTextColumn Header="Company Name" Binding="{Binding Proprietors_Company_Name}" />
         <grid:DataGridTextColumn Header="Term Of Contract" Binding="{Binding TermOfContact}" />
    </helpers:FilterDataGrid.columns>

</helpers:FilterDataGrid>

How do I add the converter. 如何添加转换器。 I have added the namespace for the converter but I keep getting this error: 我已经为转换器添加了名称空间,但是仍然出现此错误:

'Cannot create unknown type '{clr-namespace:URM.Converters;assembly=URM}DateConverter'.' '无法创建未知类型'{clr-namespace:URM.Converters; assembly = URM} DateConverter'。

I added this is the same manner I added all the other namespaces which work well. 我添加的方式与添加所有其他效果良好的名称空间的方式相同。

Edit: Parse Code 编辑:解析代码

private void Initialize()
        {
            using (var sp = new SilentPartnerDataContext())
            {
                try {
                    PendingContracts = new ObservableCollection<SalesContract>(GetAllContracts());
                    string data = sp.XamlExpressions.Single(c => c.UserControlName == "PendingContracts").XamlText;
                    ContractContent = XamlReader.Parse(data) as FrameworkElement;
                }
                catch(Exception)
                {
                    MessageBox.Show("Unable to show data");
                }
            }
        }

Make sure that the DateConverter class is public: 确保DateConverter类是公共的:

public class DateConverter : IValueConverter
{
    ...
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 WPF在数据模板中使用转换器,该模板由电话8上的xaml文本和XamlReader创建 - WPF using converter in datatemplate created from xaml text and XamlReader on phone 8 XamlReader.Parse在空String上抛出异常 - XamlReader.Parse throws exception on empty String XamlReader.Parse异常 - XamlReader.Parse exception 使用XamlReader.Parse在后台通过代码添加按钮会导致异常 - Adding buttons via code behind using XamlReader.Parse Causes exception 使用ContentTemplate和XamlReader.Parse - Working with ContentTemplate and XamlReader.Parse 使用 XamlReader.Parse 创建的 DataTemplate 没有设置其 DataTemplateKey 属性 - 为什么不呢? - DataTemplate created using XamlReader.Parse does not have its DataTemplateKey property set - why not? 如何从XamlReader.Parse(xmlFragment)调用引用现有资源 - How to reference existing Resources from a XamlReader.Parse(xmlFragment) call c#.net XamlReader.Parse方法不可用/丢失? - c#.net XamlReader.Parse method not available/missing? XamlReader.Parse(somestring)作为Section-添加额外的 <Run></Run> 块 - XamlReader.Parse(somestring) as Section - adding extra <Run></Run> blocks XamlReader.Read或XamlReader.Parse如何实例化类型以构建wpf树? - How do XamlReader.Read or XamlReader.Parse instantiate types in order to build the wpf tree?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM