DataContextとTitleに問題があります。以下の意図したとおりに作品:ItemsSourceコンテキストからのバインド
<chartingToolkit:LineSeries Title={Binding TrendDaily.Name} ItemsSource="{Binding TrendDaily.Progress}">
//...
</chartingToolkit:LineSeries>
しかし、私は、このやっているので、タイトルはより多くの情報が含まれている必要があります。それは「進行を持っているので、私はバインディングタイトルを考え出し
<chartingToolkit:LineSeries ItemsSource="{Binding TrendDaily.Progress}">
<chartingToolkit:LineSeries.Title>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding TrendDaily.Name}"/>
<TextBlock Text="-test text"/>
</StackPanel>
</chartingToolkit:LineSeries.Title>
//...
</chartingToolkit:LineSeries>
は動作しません。彼の文脈としての要素がありましたが、私は実際の拘束力を見つけることができませんでした。
編集:結合エラーで 完全に新しいコード(参照してバインディングのソースを見つけることができません 'のElementName = LineName'):の後ろ
<Window x:Class="WpfApplication1.MainWindow"
xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<chartingToolkit:Chart Title="Trend">
<chartingToolkit:Chart.Series>
<chartingToolkit:LineSeries DataContext="{Binding TrendDaily}"
ItemsSource="{Binding Progress}" DependentValuePath="Value" IndependentValuePath="Key" x:Name="LineName">
<chartingToolkit:LineSeries.Title>
<TextBlock>
<Run Text="{Binding DataContext.Name, ElementName=LineName}"/>
<Run Text="*"/>
</TextBlock>
</chartingToolkit:LineSeries.Title>
</chartingToolkit:LineSeries>
</chartingToolkit:Chart.Series>
</chartingToolkit:Chart>
</Window>
コード:
public partial class MainWindow : Window
{
public TrendDailyClass TrendDaily { get; set; }
public MainWindow()
{
TrendDaily = new TrendDailyClass();
DataContext = this;
InitializeComponent();
}
}
public class TrendDailyClass
{
public Dictionary<string, double> Progress { get; set; }
public string Name { get; set; }
public TrendDailyClass()
{
Progress = new Dictionary<string, double>();
Progress.Add("10", 10);
Progress.Add("20", 20);
Name = "test";
}
}
それは、これが私のために動作しませんようです。 BindingExpressionパスエラー: 'Name'プロパティが 'object' '' LineDataPoint '(Name =' ')'に見つかりません。 BindingExpression:Path =名前。 DataItem = 'LineDataPoint'(Name = '');ターゲット要素は 'TextBlock'(Name = '')です。 targetプロパティは 'Text'(タイプ 'String')です – michael
@michael:申し訳ありませんが、私は 'ElementName'を使用することを忘れていました。とにかく、私は私の答えをedied。 'LineSeries'に' x:Name'を使っています。 – Nawaz
今すぐ入手します: 'ElementName = LineName'という参照でバインド元が見つかりません。 BindingExpression:Path =名前。 DataItem = null;ターゲット要素は 'Run'(HashCode = 54686603)です。 targetプロパティは 'Text'(タイプ 'String')です。これはx:NameとElementの名前を追加したので、これがうまくいくはずです。 – michael