【问题标题】:WPF Multibinding with Source and Path带有源和路径的 WPF 多重绑定
【发布时间】:2015-11-25 08:55:19
【问题描述】:

我正在编写以下代码以在 WPF 文本块中实现多重绑定

<TextBlock> 
        <TextBlock.Text>
            <MultiBinding  StringFormat="{}{0}-{1}">
                <Binding Source="{Binding Path=localResource.bookdata_labelPageNO,Source={StaticResource LanguageManagerDynamic}}"/>
                <Binding Path="PageNo"/>
            </MultiBinding>
        </TextBlock.Text>
    </TextBlock>

我正在尝试加载像“Page xx”这样的字符串,其中 xx 是页码,它是绑定模型的属性,字符串“Page”是从资源中加载的 但是我在这一行 @XAML 上遇到运行时错误。是什么导致了错误?

这是我之前的工作代码

  <TextBlock Text="{Binding PageNo,StringFormat=page. {0}}" />

【问题讨论】:

  • 尝试在文本块中运行文本
  • 想打开 LanguageManagerDynamic 的用法吗?

标签: c# wpf xaml multibinding


【解决方案1】:

你可以这样试试

<TextBlock>
     <Run Text="Page" />
      <Run Text="{Binding PageNo}" />
  </TextBlock>

【讨论】:

    【解决方案2】:

    对于纯 xaml 解决方案,您可以这样做,前提是您的资源已正确加载。

    <Window.Resources>
        <sys:String x:Key="Page">Page</sys:String>
    </Window.Resources>
    
    <TextBlock>
        <TextBlock.Text>
            <MultiBinding  StringFormat="{}{0} {1}">
                <Binding Source="{StaticResource Page}"/>
                <Binding Path="PageNo" />
            </MultiBinding>
        </TextBlock.Text>
    </TextBlock>
    

    【讨论】:

    • 我们可以单独在 xaml 中完成吗?喜欢我的工作代码吗?
    • 嗯问题似乎是你的资源加载,为什么这么复杂?
    • 您必须通过从 IMultiValueConverter 派生来编写自己的 MultiValueConverter,因为默认转换器似乎对不同的来源感到“困惑”(例如,“StaticResource Page”和“PageNo”的来源不同),即使两者都是字符串。
    猜你喜欢
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    相关资源
    最近更新 更多