WPF多绑定到查看模型

时间:2014-04-02 20:24:28

标签: c# wpf xaml multibinding

我正在尝试将格式化的double值多重绑定到文本框。我有一个转换器,它接受一个double和一个Formatter对象,并返回一个要显示的格式化字符串。 double绑定到特定数据源,formatter是视图模型中的属性。我遇到的问题是我无法绑定到视图模型属性。这是我在xaml中的代码

    <StackPanel Grid.Row="0" Grid.Column="1">
      <TextBlock HorizontalAlignment="Left" Style="{StaticResource HintDataItemsStyle}">
        <TextBlock.Text>
         <MultiBinding Converter="{StaticResource FormatConverter}">
           <Binding Path="OpenValue" />
           <Binding Path="XLabelFormatterY1" />
         </MultiBinding>
        </TextBlock.Text>
      </TextBlock> 

这是视图模型中的属性

    private ILabelFormatter _labelFormatterY1;
    public ILabelFormatter XLabelFormatterY1
    {
        get { return _labelFormatterY1; }
        set
        {
            _labelFormatterY1 = value;
            OnPropertyChanged("XLabelFormatterY1");
        }
    }

所以,在我的转换器中,我能够获得&#34; OpenValue&#34;的价值。 ,但运行时无法找到XLabelFormatterY1。我见过的大多数用于多绑定的例子都绑定到了gui组件。我试图绑定到视图模型,并希望得到所有帮助。

1 个答案:

答案 0 :(得分:4)

老问题,但没有回答。我相信你正在寻找this solution。如果此答案不适合您,请尝试在绑定中明确设置NotifyOnSourceUpdated="True"。并且还要仔细检查你是否设置了正确的AncestorType,因为wookietomwookie在他的回答中说。