【问题标题】:MultiBinding in a Tag is returning null标记中的 MultiBinding 返回 null
【发布时间】:2018-08-25 13:20:52
【问题描述】:

我正在尝试在按钮标签中传递许多绑定,但我在其标签中收到空结果。代码如下:

<Button Click="ViewDanfSingle"  VerticalContentAlignment="Top" Margin="0 -4 0 0"  Grid.Column="1"  Style="{StaticResource buttonTransparent}">
    <Button.Tag>
        <MultiBinding StringFormat="{}{0} + {1}">
             <Binding Path="XmlSequencia"/>
             <Binding Path="NfesaiChaveAcesso"/>
        </MultiBinding>
    </Button.Tag>
</Button>

这是我收到标签值的代码:

private void ViewDanfSingle(object sender, RoutedEventArgs e)
{
     Button btn =  (Button)sender;
     string mytag =  btn.Tag.ToString();
}

模型如下

public class NfeSaida
{
    #region Constantes

    public const int TamanhoMaximoChaveAcesso = 44;
    public const int TamanhoMaximoRazaoNome = 60;
    public const int TamanhoMaximoNomeFantasia = 60;

    #endregion



        #region Propriedades

    public int NfesaiSequencia { get; set; }
    public int? EmpSequencia { get; set; }
    public int? EdnfeSequenciaDest { get; set; }
    public int? XmlSequencia { get; set; }
    public int UsuSequenciaInclusao
        #endregion

}

但在我的代码中,Tag 属性返回 null 我在做错事吗?我的代码基于on this post

【问题讨论】:

  • 您可能正在尝试读取未设置的本地设置值。尝试改为读取绑定值。
  • 对不起,我没有做对,在这种情况下,两个值都设置了,问题似乎是当我使用 tag="{biding path=something}" 时使用多重原因它有效,但我可以通过这种方式传递多个值
  • 您能否显示 Tag 属性返回为 null 的代码行?
  • 我只是更新代码,而不是它没有显示任何错误信息
  • 应该有类似 System.Windows.Data Error: 31 : Cannot set MultiBinding because MultiValueConverter must be specified。

标签: c# wpf xaml multibinding


【解决方案1】:

您引用的示例仅适用于 string 类型的属性,例如TextBlock.Text.

对于其他类型(Tagobject),您将不得不使用转换器(this 答案使用它)或其他方法。


一种可能性是代理使用正在工作的东西输出;)

<TextBlock Visibility="Collapsed" x:Name="hiddenText">
    <TextBlock.Text>
        <MultiBinding StringFormat="{}{0} + {1}">
            <Binding Path="XmlSequencia" />
            <Binding Path="NfesaiChaveAcesso" />
        </MultiBinding>
    </TextBlock.Text></TextBlock>
<!-- use collapsed textblock to generate content for button tag -->
<Button Tag="{Binding Text, ElementName=hiddenText}" Click="ViewDanfSingle" />

【讨论】:

  • 谢谢你它工作得很好第二个选项工作得很好,第一个没有工作
猜你喜欢
  • 1970-01-01
  • 2011-09-10
  • 2018-07-28
  • 2012-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
  • 2016-10-30
相关资源
最近更新 更多