我在DataGridTemplateColumn中有一個橢圓,它綁定的數據在下一列中正確顯示,但我的橢圓列始終爲空,沒有顯示任何內容。WPF無法在DataGridTemplateColumn中顯示橢圓
<DataGridTemplateColumn CanUserResize="False" Header="StateEllipse">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<Ellipse Fill="{Binding Path=State, Converter={StaticResource StateToBrush}}" Width="10" Height="10" />
<TextBlock Text="{Binding Path=State}" />
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="State" Binding="{Binding Path=State}" />
我的轉換是這樣的:
using System;
using System.Globalization;
using System.Windows.Data;
using System.Windows.Media;
namespace ThisNS.NS.Converter
{
[ValueConversion(typeof(int), typeof(Brush))]
public sealed class StateToBrush : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Color stateColor = Colors.Yellow;
switch ((int)value)
{
case 0:
stateColor = Colors.Green;
break;
case 1:
stateColor = Colors.Red;
break;
}
return new SolidColorBrush(Colors.Yellow);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
}
顯示狀態值爲我的第二列是確定的,但第一個與橢圓總是空的。
轉換器永遠不會被調用,所以綁定從不綁定。
有人有一個想法/建議?
謝謝。
嘗試使橢圓這會爲你工作的默認大小。 – JSJ
你可以在你定義包含轉換器的StateToBrush資源的地方顯示XAML嗎? –