我在我的XAML中有一個ListView,我試圖掛接一個MultiBinding轉換器。XAML工具提示數據上下文和多重綁定
<ListView
Grid.Column="4"
Grid.Row="1"
Grid.RowSpan="5"
Margin="8,0,8,8"
HorizontalAlignment="Stretch"
Name="lvDisplayType"
ItemsSource="{Binding Path=Types}"
SelectedItem="{Binding Path=Current.Opt}"
VerticalAlignment="Stretch"
SelectionChanged="lvType_SelectionChanged"
SelectionMode="Single"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemTemplate>
<DataTemplate>
<DockPanel
HorizontalAlignment="Center">
<TextBlock
Text="{Binding Path=., Converter={StaticResource DisplayConverter}}"
HorizontalAlignment="Center"
Padding="6"
VerticalAlignment="Center"
TextWrapping="Wrap">
<TextBlock.ToolTip>
<ToolTip DataContext="{Binding Path=Current}">
<MultiBinding Converter="{StaticResource OptConverter}">
<Binding Path="Opt" />
<Binding Path="Type" />
</MultiBinding>
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>
</DockPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
的代碼不工作是:
<TextBlock.ToolTip>
<ToolTip DataContext="{Binding Path=Current}">
<MultiBinding Converter="{StaticResource OptConverter}">
<Binding Path="Opt" />
<Binding Path="Type" />
</MultiBinding>
</ToolTip>
</TextBlock.ToolTip>
目前轉換器是返回一個空字符串作爲既 '值[0] == System.Windows.DependencyProperty.UnsetValue' 和「值[ 1] == System.Windows.DependencyProperty.UnsetValue'返回true。這些值從未設置。
由於邏輯樹(我認爲)TextBlock.ToolTip默認綁定是'Current.Opt'。對於MultiBinding,我還需要引用'Type',它是'Current'的另一個屬性。所以爲了解決這個問題,我設置了'ToolTip DataContext =「{Binding Path = Current}」' - 這不像預期的那樣工作 - 我做錯了什麼?
我知道我可以在後面的代碼中輕鬆做到這一點,但我們正在使用MVVM,所以如果可能的話,要避免它。
任何幫助非常感謝!
謝謝
感謝您的回覆。 仍然無法正常工作。 它必須與DataContext做。繼承人一個例子: 我的ListView項源是'ItemsSource =「{綁定路徑=類型}」'然後我有一個TextBlock文本爲: Text =「{Binding Path =。}」// This Works Text =「{Binding Path = DisplayTypes}」//這不會: -/ 任何指針? 非常感謝 – 2010-10-28 13:03:21
對不起,它應該是:謝謝你的回覆。還是行不通。它必須與DataContext相關。下面是一個示例:我的ListView項源代碼是'ItemsSource =「{Binding Path = Types}」',然後我有一個TextBlock文本爲:Text =「{Binding Path =。}」// This Works Text =「{Binding路徑=類型}「/ /這不: - /任何指針?非常感謝 - – 2010-10-28 16:03:42
根據信息有點難以分辨,我不知道還有什麼事情發生。但是當我嘗試這樣做時ItemsSource =「{Binding =。}」我得到'{Binding =。'''值不是有效的MarkupExtension表達式。無法解析'Binding =。'...您應該只使用Text = 「{Binding}」在那裏,這意味着你直接綁定到你的DataContext而不是它的屬性 – 2010-10-28 16:33:37