2015-05-25 53 views
0
<DataGrid AutoGenerateColumns="False" Height="330" HorizontalAlignment="Left" Margin="5,70,0,0" Name="grdDeviceInfo" VerticalAlignment="Top" 
       CanUserAddRows="False" IsReadOnly="True" Width="368" HorizontalScrollBarVisibility="Auto"> 
       <DataGrid.Columns> 
        <DataGridTextColumn Header="Channels" Width="100" Binding="{Binding ChannelNo}"></DataGridTextColumn> 
        <DataGridTextColumn Header="Label" Width="200" Binding="{Binding Label}"></DataGridTextColumn> 
        <DataGridTemplateColumn Header="Status" Width="60"> 
         <DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <Ellipse Height="13" Name="grdfEllipse" Stroke="Black" Fill="{}" Width="20"/> 
          </DataTemplate> 
         </DataGridTemplateColumn.CellTemplate> 
        </DataGridTemplateColumn> 
       </DataGrid.Columns> 
      </DataGrid> 

代碼背後:如何在運行時更改gridview中存在的橢圓顏色?

List<IOInformation> lstIOStatus = new List<IOInformation>(); 

         for (int i = 0; i < channelStatus.Count(); i++) 
         { 
          // var columns = line.Split('\t'); 
          lstIOStatus.Add(new IOInformation 
          { 
           ChannelNo = "Channel " + j++, 
           Label = labeldata[i], 
           MasterStatus = Convert.ToBoolean(channelStatus[i]) 
          }); 
         } 

         this.grdDeviceInfo.ItemsSource = lstIOStatus; 

我想橢圓顏色更改爲綠色,如果這是真的,或紅色,如果它是假的。

+0

網格視圖: <橢圓高度= 「13」 名稱= 「grdfEllipse」 中風= 「黑色」 填充= 「{}」 WIDTH = 「20」/>

回答

0

您可以使用觸發器來執行此操作。這裏是一個鏈接如何頂部使用它們:

http://www.wpf-tutorial.com/styles/trigger-datatrigger-event-trigger/

你的XAML代碼是這樣的:

<Ellipse Height="13" Name="grdfEllipse" Stroke="Black" Width="20"> 
    <Ellipse.Style> 
     <Setter Property="Fill" Value="Red"/> 
     <Style TargetType="Ellipse"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding yourBinding}" Value="true"> 
        <Setter Property="Fill" Value="Green"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Ellipse.Style> 
</Ellipse> 
+0

非常感謝你的工作好.. –